Linux 中 CPU 如何通过 HMM 机制与设备共享数据?

How does the CPU share data with devices through HMM mechanism in Linux?

提问人:Frontier_Setter 提问时间:11/15/2023 最后编辑:Frontier_Setter 更新时间:11/15/2023 访问量:17

问:

HMM 代表 Linux 内核中的异构内存管理。它提供了基础设施和帮助程序,用于将非常规内存(设备内存,如板载 GPU 内存)集成到常规内核路径中。

根据内核文档,它将在空闲的物理地址空间中分配一部分页面供设备使用。这些页面被分配给类型并属于类型,而 CPU 无法直接寻址。ZONE_DIVICEMEMORY_DIVICE_PRIVATE

HMM 提供的第二种机制是一种新的ZONE_DEVICE存储器, 允许为设备内存的每一页分配一个结构页。这些页面 是特殊的,因为 CPU 无法映射它们

根据这个含义,这些物理地址不指向任何内容,CPU 无法读取或写入它。但该文档还指出,当设备访问页面的这一部分时,它会将相应的数据迁移到设备的内存中。

但是,它们允许迁移 使用现有迁移机制的主内存到设备内存以及所有内容 从 CPU 的角度来看,看起来像一个交换到磁盘的页面。

那么问题来了,什么是迁移的数据?CPU如何通过HMM机制与设备共享数据?

内存管理 内核 gpu linux 设备驱动程序

评论


答: 暂无答案