Lines Matching refs:CPU
18 HMM 还为 SVM(共享虚拟内存)提供了可选的帮助程序,即允许设备透明地访问与 CPU 一致的程序
19 地址,这意味着 CPU 上的任何有效指针也是该设备的有效指针。这对于简化高级异构计算的使用变得
23 部分中,我揭示了许多平台固有的硬件限制。第三部分概述了 HMM 设计。第四部分解释了 CPU 页
64 内存访问;甚至缓存一致性通常是可选的。从 CPU 访问设备内存甚至更加有限。通常情况下,它
67 如果我们只考虑 PCIE 总线,那么设备可以访问主内存(通常通过 IOMMU)并与 CPU 缓存一
68 致。但是,它只允许设备对主存储器进行一组有限的原子操作。这在另一个方向上更糟:CPU
77 (OpenCAPI、CCIX)。它们主要允许 CPU 和设备之间的双向缓存一致性,并允许架构支持的所
82 存在设备使用时迁移到设备内存(在迁移时阻止 CPU 访问)。
91 为了实现这一点,HMM 提供了一组帮助程序来填充设备页表,同时跟踪 CPU 页表更新。设备页表
92 更新不像 CPU 页表更新那么容易。要更新设备页表,您必须分配一个缓冲区(或使用预先分配的
98 struct page。这些页面很特殊,因为 CPU 无法映射它们。然而,它们允许使用现有的迁移机
99 制将主内存迁移到设备内存,从 CPU 的角度来看,一切看起来都像是换出到磁盘的页面。使用
104 请注意,任何 CPU 对设备页面的访问都会触发缺页异常并迁移回主内存。例如,当支持给定CPU
105 地址 A 的页面从主内存页面迁移到设备页面时,对地址 A 的任何 CPU 访问都会触发缺页异常
108 凭借这两个特性,HMM 不仅允许设备镜像进程地址空间并保持 CPU 和设备页表同步,而且还通
115 地址空间镜像的主要目标是允许将一定范围的 CPU 页表复制到一个设备页表中;HMM 有助于
132 页异常代码路径,就像 CPU 缺页异常一样。
134 这两个函数都将 CPU 页表条目复制到它们的 pfns 数组参数中。该数组中的每个条目对应于虚拟
135 范围中的一个地址。HMM 提供了一组标志来帮助驱动程序识别特殊的 CPU 页表项。
179 mmu_interval_read_retry() 之前保持,以避免与并发 CPU 页表更新发生任何竞争。
203 CPU pte 没有设置写权限,那么HMM将调用handle_mm_fault()。
219 我们只需要确保没有人试图从 CPU 端映射这些页面。
224 由于 CPU 无法直接访问设备内存,因此设备驱动程序必须使用硬件 DMA 或设备特定的加载/存
229 作特殊的“交换”页表条目,以便 CPU 进程在尝试访问已迁移到设备专用内存的页面时会发生异常。
297 内存复制到系统内存或另一个设备私有页面。由于核心 Linux 内核会处理 CPU 页表失
309 入到CPU的页表中。如果一个CPU线程在同一页面上发生异常,这可能会失败。然而,页
314 ``struct page`` ,最终完成CPU端的迁移。
334 个共享的虚拟内存页的原子操作,这样的设备需要对该页的访问是排他的,而不是来自CPU
341 放弃页面锁和页面引用为止,这时页面上的任何CPU异常都可以按所述进行。