上一篇 7-5《BO 到 VA 的映射/解映射/重映射》 说明了 MAP/UNMAP/CLEAR/REPLACE 如何在软件侧维护 amdgpu_bo_va_mapping,并把新建映射挂入 invalids 链表等待写表。这些映射要被 GPU 的 MMU 真正使用,还差最后一步:把 invalids 中的映射填充(更新)到硬件页表——这正是本篇的主题。
本篇聚焦页表更新的主干:从 amdgpu_vm_bo_update() 到 amdgpu_vm_update_range(),以及 CPU 直写与 SDMA 异步两种后端。涉及的若干相邻机制均已独立成篇:页表遍历游标见 7-3《页表遍历游标》,Huge Page / Fragment 优化见 7-7《Huge Page 与 Fragment 机制》,更新过程的锁与并发(eviction 临界区)见 7-8《页表更新的锁与并发模型》,TLB 刷新与延迟释放见 7-12《TLB 管理与刷新》 与 7-13《TLB fence 与页表延迟释放》,本篇涉及时以引用为主。
订阅专栏 解锁全文
406





被折叠的 条评论
为什么被折叠?



