ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

7.19 同一个 GTT BO 的两条访问路径:用户态与内核的映射差异

7.19 同一个 GTT BO 的两条访问路径:用户态与内核的映射差异 7-18《GART 与 GPUVM 对比:一颗 GPU 上两套页表的分工》 从六个维度横向对比了两套页表,说明它们按 VMID 分工、并存于同一颗 GMC。对比之后最容易冒出的一个实际问题是:一个用户态申请的 GTT 域 BO,交给 GPU 访问时到底走哪套页表?"GTT"这个名字里带着 aperture 的含义,很容易让人以为它必然经过 GART。本篇锁定同一个 GTT BO,追踪它被两类访问者使用时的地址转换路径,得出一个反直觉但有源码依据的结论:用户进程访问 GTT BO 走的是每进程 GPUVM,叶子 PTE 直接编码系统内存的 DMA 地址,并不经过 GART;GART 映射服务的是内核自身对该 BO 的访问。同一份物理页因此同时挂在两套页表下,按访问者分流。目录1 概述:一个 BO,两个访问者2 用户态路径:从 GEM_VA 到 pages_addr3 关键一步:GPUVM 叶子 PTE 直填 DMA 地址4 内核路径:同一 BO 绑进 GART5 谁在使用 GART 地址6 两套映射并存与一致性7 小结1 概述:一个
返回列表