1. 本章小结
本章从定位、历史、硬件与组织四个方面为全书建立背景:DRM 是什么,各项机制为何先后出现,它们面对怎样的硬件约束,以及全书如何组织。
1.1 DRM 的定位
DRM 由显示(KMS)与显存和资源管理两条主线组成。两条主线的关系是单向的:KMS 的帧缓冲引用 GEM 对象,资源管理不依赖 KMS;没有显示输出的计算加速卡同样完整地运行在资源管理与调度框架之上。DRM 因此更准确地说是内核中对 GPU 资源,尤其是 GPU 内存的统一管理框架,本书讨论的正是这一部分。
1.2 DRM 的演进
DRM 的演进分为三个阶段,每个阶段有一个主要矛盾:
- 图形显示阶段:多进程安全地使用 GPU,由此出现 DRM 核心、主设备认证与 KMS;
- 图形渲染阶段:GPU 内存的分配、共享与同步,由此出现 GEM、TTM、dma-buf 与 PRIME、dma-fence 与
dma_resv、syncobj 与 GPU 调度器; - 异构计算与 AI 阶段:GPU 虚拟地址的管理与 CPU、GPU 地址空间的统一,由此出现
drm_gpuvm与 VM_BIND、drm_pagemap与drm_gpusvm。
当前 DRM 中并存的各项机制,分别对应其中某一方面的问题。阅读这些机制的代码时,先明确它要解决的是哪个阶段的哪个问题,有助于把握其设计取舍。
<