一. 核心结构体
1.struct ttm_bo_device —— 显存设备
mc_ip初始化
amdgpu_bo_init // 初始化memory manager
amdgpu_ttm_init // Init the memory management (ttm) as well as various gtt/vram related fileds
ttm_bo_device_init
2.struct ttm_bo_driver —— 显存驱动
---------------------------------------------------------------------
3.struct ttm_buffer_object —— TTM每分配一块内存,不管在系统内存中还是在显卡内存中,都会创建一个ttm_buffer_object对象,代表这块内存的实体,处理数据的放置和CPU映射。
4.struct ttm_tt —— 对于应用程序来说,并不会关心内存设备和驱动,它们关心的是能够写入数据的虚拟内存;但对于显卡来说,它关心显存或映射为显存的内存,所以,把虚存和显存绑定在一起的一个对象就呼之欲出了,这就是ttm_tt。
----------------------------------------------------------------------
5.struct ttm_backend_func —— 主要就是用于将GTT内存绑定/解绑到GPU的address space.
约定,这里说的显存包括VRAM和GTT。
后续待完善。。。。
参考: