7-11《PD/PT 的驱逐、重建与 generation》 讨论了页表 BO 被驱逐后如何重新验证、如何把新的物理地址回填到上级 PDE。页表内容一旦改写,就产生一个新的问题:GPU 的地址转换硬件为了加速 VA→PA 翻译,会把页表项缓存进 TLB(Translation Lookaside Buffer);页表已经指向新地址,而 TLB 里可能仍缓存着旧映射。若不加干预,GPU 会继续用过期的翻译结果访问已被搬走或已解映射的内存,导致数据错误或非法访问。
本篇分析 amdgpu 如何在页表更新后驱动 TLB 失效。核心不是"每改一次页表就刷一次 TLB"这种朴素做法,而是一套基于序列号的延迟合并机制:页表更新只递增一个计数器 tlb_seq,真正的失效命令推迟到命令提交、在 VMID 分配环节按需去重发出。围绕这条主线,本篇覆盖 tlb_seq 的标记与递增、VMID 层 flushed_updates 的去重决策、graphics 与 compute 两条刷新路径,以及硬件失效请求的构造。
订阅专栏 解锁全文
2690




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



