kgd_mem
unsigned long cur_seq, struct kgd_mem *mem);
unsigned long cur_seq, struct kgd_mem *mem)
int amdgpu_amdkfd_add_gws_to_process(void *info, void *gws, struct kgd_mem **mem);
void *drm_priv, struct kgd_mem **mem,
struct amdgpu_device *adev, struct kgd_mem *mem, void *drm_priv,
struct kgd_mem *mem, void *drm_priv);
struct amdgpu_device *adev, struct kgd_mem *mem, void *drm_priv);
int amdgpu_amdkfd_gpuvm_dmaunmap_mem(struct kgd_mem *mem, void *drm_priv);
struct amdgpu_device *adev, struct kgd_mem *mem, bool intr);
int amdgpu_amdkfd_gpuvm_map_gtt_bo_to_kernel(struct kgd_mem *mem,
void amdgpu_amdkfd_gpuvm_unmap_gtt_bo_from_kernel(struct kgd_mem *mem);
struct kgd_mem **mem, uint64_t *size,
int amdgpu_amdkfd_gpuvm_export_dmabuf(struct kgd_mem *mem,
bool amdgpu_amdkfd_bo_mapped_to_dev(void *drm_priv, struct kgd_mem *mem);
static void add_kgd_mem_to_kfd_bo_list(struct kgd_mem *mem,
static void remove_kgd_mem_from_kfd_bo_list(struct kgd_mem *mem,
static int init_user_pages(struct kgd_mem *mem, uint64_t user_addr,
static int reserve_bo_and_vm(struct kgd_mem *mem,
static int reserve_bo_and_cond_vms(struct kgd_mem *mem,
static int unmap_bo_from_gpuvm(struct kgd_mem *mem,
static int update_gpuvm_pte(struct kgd_mem *mem,
static int map_bo_to_gpuvm(struct kgd_mem *mem,
void *drm_priv, struct kgd_mem **mem,
*mem = kzalloc_obj(struct kgd_mem);
struct amdgpu_device *adev, struct kgd_mem *mem, void *drm_priv,
struct amdgpu_device *adev, struct kgd_mem *mem,
int amdgpu_amdkfd_gpuvm_dmaunmap_mem(struct kgd_mem *mem, void *drm_priv)
struct amdgpu_device *adev, struct kgd_mem *mem, void *drm_priv)
struct amdgpu_device *adev, struct kgd_mem *mem, bool intr)
int amdgpu_amdkfd_gpuvm_map_gtt_bo_to_kernel(struct kgd_mem *mem,
void amdgpu_amdkfd_gpuvm_unmap_gtt_bo_from_kernel(struct kgd_mem *mem)
struct kgd_mem **mem, uint64_t *size,
*mem = kzalloc_obj(struct kgd_mem);
struct kgd_mem **mem, uint64_t *size,
int amdgpu_amdkfd_gpuvm_export_dmabuf(struct kgd_mem *mem,
unsigned long cur_seq, struct kgd_mem *mem)
struct kgd_mem *mem, *tmp_mem;
struct kgd_mem *mem, *tmp_mem;
struct kgd_mem *mem, *tmp_mem;
struct kgd_mem *mem;
int amdgpu_amdkfd_add_gws_to_process(void *info, void *gws, struct kgd_mem **mem)
*mem = kzalloc_obj(struct kgd_mem);
struct kgd_mem *kgd_mem = (struct kgd_mem *)mem;
struct amdgpu_bo *gws_bo = kgd_mem->bo;
remove_kgd_mem_from_kfd_bo_list(kgd_mem, process_info);
amdgpu_sync_free(&kgd_mem->sync);
mutex_destroy(&kgd_mem->lock);
bool amdgpu_amdkfd_bo_mapped_to_dev(void *drm_priv, struct kgd_mem *mem)
struct kgd_mem *mem, struct amdgpu_bo **bo_out)
struct kgd_mem *mem)
kfd_mem_dmamap_userptr(struct kgd_mem *mem,
kfd_mem_dmamap_sg_bo(struct kgd_mem *mem,
kfd_mem_dmamap_attachment(struct kgd_mem *mem,
kfd_mem_dmaunmap_userptr(struct kgd_mem *mem,
kfd_mem_dmaunmap_sg_bo(struct kgd_mem *mem,
struct kgd_mem *mem)
kfd_mem_dmaunmap_attachment(struct kgd_mem *mem,
static int kfd_mem_export_dmabuf(struct kgd_mem *mem)
kfd_mem_attach_dmabuf(struct amdgpu_device *adev, struct kgd_mem *mem,
static int kfd_mem_attach(struct amdgpu_device *adev, struct kgd_mem *mem,
struct kgd_mem *kfd_bo;
pdd->drm_priv, (struct kgd_mem **) &mem, &offset,
amdgpu_amdkfd_gpuvm_free_memory_of_gpu(dev->adev, (struct kgd_mem *)mem,
(struct kgd_mem *)mem, pdd->drm_priv, &size);
peer_pdd->dev->adev, (struct kgd_mem *)mem,
((struct kgd_mem *)mem)->domain);
err = amdgpu_amdkfd_gpuvm_sync_memory(dev->adev, (struct kgd_mem *) mem, true);
peer_pdd->dev->adev, (struct kgd_mem *)mem, peer_pdd->drm_priv);
(struct kgd_mem *) mem, true);
(struct kgd_mem **)&mem, &size,
amdgpu_amdkfd_gpuvm_free_memory_of_gpu(pdd->dev->adev, (struct kgd_mem *)mem,
struct kgd_mem *kgd_mem = (struct kgd_mem *)mem;
if (!kgd_mem->va || kgd_mem->va > pdd->gpuvm_base)
static int criu_get_prime_handle(struct kgd_mem *mem,
struct kgd_mem *kgd_mem;
kgd_mem = (struct kgd_mem *)mem;
dumper_bo = kgd_mem->bo;
if (kgd_mem->va && kgd_mem->va <= pdd->gpuvm_base)
bo_bucket->addr = (uint64_t)kgd_mem->va;
bo_bucket->alloc_flags = (uint32_t)kgd_mem->alloc_flags;
ret = criu_get_prime_handle(kgd_mem,
if (amdgpu_amdkfd_bo_mapped_to_dev(p->pdds[i]->drm_priv, kgd_mem))
struct kgd_mem **kgd_mem)
bo_bucket->size, pdd->drm_priv, kgd_mem,
idr_handle = idr_alloc(&pdd->alloc_idr, *kgd_mem, bo_priv->idr_handle,
amdgpu_amdkfd_gpuvm_free_memory_of_gpu(pdd->dev->adev, *kgd_mem, pdd->drm_priv,
struct kgd_mem *kgd_mem;
ret = criu_restore_memory_of_gpu(pdd, bo_bucket, bo_priv, &kgd_mem);
ret = amdgpu_amdkfd_gpuvm_map_memory_to_gpu(peer->adev, kgd_mem,
ret = criu_get_prime_handle(kgd_mem, DRM_RDWR,
struct kgd_mem *cwsr_mem;
struct kgd_mem *ib_mem;
struct kgd_mem *mem;
static void kfd_process_free_gpuvm(struct kgd_mem *mem,
uint32_t flags, struct kgd_mem **mem, void **kptr)
(struct kgd_mem *)*mem, kptr, NULL);
struct kgd_mem *mem;
struct kgd_mem *mem = NULL;
struct kgd_mem;