参考内核代码:Linux-6.1/driver/gpu/drm/amd
一、背景
在AMD的Linux GPU驱动中,只有计算相关的业务(amdkfd)直接使用TTM来allocate/free内存,当然在dma-buf来进行进程间通信内存共享时也用到了GEM。而在图形相关业务中既使用了GEM也使用了TTM。下面对GEM和TTM的核心结构和函数进行剖析。
二、drm_gem_object
/*** struct drm_gem_object - GEM buffer object** This structure defines the generic parts for GEM buffer objects, which are* mostly around handling mmap and userspace handles.** Buffe