2. kfd read
kfd 在kfd_chardev.c
被初始化为一个字符设备。
static const struct file_operations kfd_fops = {
.owner = THIS_MODULE,
.unlocked_ioctl = kfd_ioctl,
.compat_ioctl = compat_ptr_ioctl,
.open = kfd_open,
.release = kfd_release,
.mmap = kfd_mmap,
};
KFD IOCTL¶
kfd_ioctl_alloc_memory_of_gpu mem ← amdgpu_amdkfd_gpuvm_alloc_memory_of_gpu() amdgpu_gem_object_create drm_vma_node_allow drm_gem_handle_create
kfd_ioctl_map_memory_to_gpu mem → amdgpu_amdkfd_gpuvm_map_memory_to_gpu() kfd_mem_attach kfd_mem_attach_dmabuf kfd_mem_export_dmabuf amdgpu_gem_prime_import amdgpu_dma_buf_create_obj dma_buf_dynamic_attach
reserve_bo_and_vm
map_bo_to_gpuvm
unreserve_bo_and_vms