参考内核代码:Linux-6.1/driver/gpu/drm/amd
HMM
待更新......
dumb buffer create/map
在AMDGPU的Graphics业务中,用到了GEM(Graphics Execution Manager),它是用于内核内部管理图形缓冲区,用户空间进程可以通过GEM来创建、处理和销毁GPU中视频内容的内存对象。如下是AMD GPU注册得drm_driver回调
static const struct drm_driver amdgpu_kms_driver = {
......
.dumb_create = amdgpu_mode_dumb_create,
.dumb_map_offset = amdgpu_mode_dumb_mmap,
......
};
其中:DRM_IOCTL_MODE_CREATE_DUMB中调用amdgpu_mode_dumb_create来分配dumb buffer。这里需要注意amdgpu_mode_dumb_create最终仍然是调用了TTM来分配内存。
int drm_mode_create_dumb(struct drm_device *dev,
struct drm_mode_create_dumb *args,
struct