本节是概述章节。理解ttm_device的定位给出后续的分析思路和理解该对象的方法。1. 概述ttm_device 的角色定位ttm_device是 TTM 子系统的顶层管理对象每个 GPU 设备持有一个实例。它不直接操作具体的 BO 或物理页而是作为管理者的管理者——聚合资源管理器、页池、LRU 策略、地址空间管理器等子系统为驱动提供统一的操作入口。从定义看其成员构成structttm_device{structlist_headdevice_list;// 全局设备链表节点unsignedintalloc_flags;// 分配策略标志conststructttm_device_funcs*funcs;// 驱动回调函数表structttm_resource_managersysman;// 内建的 SYSTEM 域管理器structttm_resource_manager*man_drv[TTM_NUM_MEM_TYPES];// 多域管理器数组structdrm_vma_offset_manager*vma_manager;// 用户空间 mmap 偏移管理structttm_poolpool;// 页池spinlock_tlru_lock;// LRU 全局锁structlist_headunevictable;// 不可驱逐 BO 链表structaddress_space*dev_mapping;// CPU 映射失效用structworkqueue_struct*wq;// 延迟删除工作队列};这些成员并非随意堆砌而是分别服务于 4.1 节提出的三大设计目标设计目标对应成员统一管理异构内存域sysman、man_drv[]、pool、funcs-ttm_tt_*显存动态调度与超配lru_lock、unevictable、wq、funcs-evict_*、funcs-moveGPU 地址映射支撑vma_manager、dev_mapping、funcs-io_mem_*不同于逐字段平铺直叙的罗列方式这里我以设计目标→成员归因为主线拆解ttm_device——先问要解决什么问题再看哪些成员为此而生。这样读友们建立的是需求→设计的因果链而非对孤立字段的机械记忆。 导航上一节4.4 ttm_resource_manager的功能和实现解析下一节4.5.1 ttm_device对三大设计目标的实现返回目录: linux drm子系统技术实现分析产品化应用分享专栏目录