☰
4.3.5 CPU 访问:vmap、mmap 与缺页处理
2026/10/22 1:49:12 网站建设 项目流程

4.3.4 说明了设备侧如何获取页与 sg 表。本节转向 CPU 侧,对应 4.3 的需求 N3,依次讨论内核态如何读写 BO(vmap)、用户态如何将 BO 映射到自身地址空间(mmap),以及映射后发生缺页时 helper 如何将页插入页表(vm_ops.fault)。

本节的主线如下:vmap为内核提供一段连续虚拟地址;mmap先将页全部换入,但仅建立页表为空的映射,待 CPU 访问触发缺页时,再由缺页回调将pages[]中的页逐个插入页表。


1、vmap:内核态的连续映射

内核代码有时需要直接读写 BO,例如由 CPU 填充帧缓冲。然而 4.3.4 获取的pages[]在物理上是分散的,内核需要一段连续虚拟地址。drm_gem_shmem_vmap_locked即用于此:

intdrm_gem_shmem_vmap_locked(structdrm_gem_shmem_object</

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询