Defined in 1 files as a prototype:

Defined in 1 files as a function:

Referenced in 1 files:

Smatch caller information:

drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c amdgpu_amdkfd_get_local_mem_info() -> amdgpu_amdkfd_xcp_memory_size()

Type Parameter Key Value
PARAM_VALUE 0 adev 4096-ptr_max
PARAM_VALUE 1 xcp_id 0-7
CAPPED_DATA 0 adev->gmc.real_vram_size 1
CAPPED_DATA 0 adev->gmc.visible_vram_size 1
DATA_SOURCE 0 adev $0
PARAM_COMPARE 0 adev->gmc.real_vram_size == $0->gmc.visible_vram_size
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 0 adev->discovery.size
HALF_LOCKED2 &xcp_mgr->xcp_lock

drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c amdgpu_amdkfd_get_local_mem_info() -> amdgpu_amdkfd_xcp_memory_size()

Type Parameter Key Value
PARAM_VALUE 0 adev 4096-ptr_max
PARAM_VALUE 1 xcp_id 0-7
DATA_SOURCE 0 adev $0
PARAM_COMPARE 0 adev->gmc.real_vram_size != $0->gmc.visible_vram_size
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 0 adev->discovery.size
HALF_LOCKED2 &xcp_mgr->xcp_lock

drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_device.c kgd2kfd_device_init() -> amdgpu_amdkfd_xcp_memory_size()

Type Parameter Key Value
PARAM_VALUE 0 adev 4096-ptr_max
PARAM_VALUE 0 adev->xcp_mgr 4096-ptr_max
PARAM_VALUE 1 xcp_id 0-254
CAPPED_DATA 1 xcp_id 1
RX_PATH
TASK_NOT_RUNNING
UNITS 1 xcp_id unit_array_size
HALF_LOCKED2 &xcp_mgr->xcp_lock

drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_svm.c svm_range_set_max_pages() -> amdgpu_amdkfd_xcp_memory_size()

Type Parameter Key Value
PARAM_VALUE 0 adev 4096-ptr_max
PARAM_VALUE 1 xcp_id (-1)-7
DATA_SOURCE 0 adev $0
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 0 adev->discovery.size
HALF_LOCKED2 &xcp_mgr->xcp_lock

drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c amdgpu_amdkfd_get_available_memory() -> amdgpu_amdkfd_xcp_memory_size()

Type Parameter Key Value
PARAM_VALUE 0 adev 4096-ptr_max
PARAM_VALUE 0 adev->apu_prefer_gtt 1
PARAM_VALUE 0 adev->gmc.is_app_apu 0
PARAM_VALUE 1 xcp_id 0-255
DATA_SOURCE 0 adev $0
DATA_SOURCE 1 xcp_id $1
PREEMPT_ADD <- disables preempt
UNITS 1 xcp_id unit_array_size
LOCK2 &p->mutex
LOCK2 global &kfd_mem_limit.mem_limit_lock
TYPE_LOCK (struct kfd_process)->mutex

drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c amdgpu_amdkfd_get_available_memory() -> amdgpu_amdkfd_xcp_memory_size()

Type Parameter Key Value
PARAM_VALUE 0 adev 4096-ptr_max
PARAM_VALUE 1 xcp_id 0-255
DATA_SOURCE 0 adev $0
DATA_SOURCE 1 xcp_id $1
PREEMPT_ADD <- disables preempt
UNITS 1 xcp_id unit_array_size
LOCK2 &p->mutex
LOCK2 global &kfd_mem_limit.mem_limit_lock
TYPE_LOCK (struct kfd_process)->mutex

drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c amdgpu_amdkfd_reserve_mem_limit() -> amdgpu_amdkfd_xcp_memory_size()

Type Parameter Key Value
PARAM_VALUE 0 adev 0,4096-ptr_max
PARAM_VALUE 1 xcp_id 0-127
DATA_SOURCE 0 adev $0
DATA_SOURCE 1 xcp_id $3
RX_PATH
TASK_NOT_RUNNING
UNITS 1 xcp_id unit_array_size
HALF_LOCKED2 &mm->mmap_lock
HALF_LOCKED2 &p->mutex
HALF_LOCKED2 &p->svms.lock
HALF_LOCKED2 &prange->lock
HALF_LOCKED2 &prange->migrate_mutex
HALF_LOCKED2 &svms->lock