Documented in 1 files:

Defined in 1 files as a prototype:

Defined in 1 files as a function:

Referenced in 2 files:

Smatch caller information:

drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_migrate.c svm_migrate_to_ram() -> svm_migrate_vram_to_ram()

Type Parameter Key Value
PARAM_VALUE 0 prange 4096-ptr_max
PARAM_VALUE 0 prange->actual_loc 1-u32max
PARAM_VALUE 0 prange->migrate_mutex.dep_map->name 0-255
PARAM_VALUE 0 prange->migrate_mutex.first_waiter 0,4096-ptr_max
PARAM_VALUE 0 prange->migrate_mutex.first_waiter->list.prev->next 5159360019465732096
PARAM_VALUE 0 prange->migrate_mutex.osq.tail.counter 0-s32max
PARAM_VALUE 0 prange->migrate_mutex.wait_lock.dep_map->name 0-255
PARAM_VALUE 0 prange->migrate_mutex.wait_lock.owner (-1)
PARAM_VALUE 0 prange->migrate_mutex.wait_lock.owner_cpu u32max
PARAM_VALUE 0 prange->start 0-4503599627370495
PARAM_VALUE 4 trigger 2
PARAM_VALUE 5 fault_page 4096-ptr_max
PARAM_VALUE 5 fault_page->zone_device_data 4096-ptr_max
CAPPED_DATA 0 prange->start 1
CAPPED_DATA 0 &prange->migrate_mutex 1
CAPPED_DATA 2 start_mgr 1
CAPPED_DATA 2 start_mgr 1
CAPPED_DATA 3 last_mgr 1
CAPPED_DATA 3 last_mgr 1
DATA_SOURCE 0 prange r svm_range_from_addr
RX_PATH
TASK_NOT_RUNNING
USER_DATA 2 start_mgr 1-u64max[c]
UNITS 1 mm unit_byte
UNITS 5 fault_page unit_page
LOCK2 &p->svms.lock
LOCK2 0 &prange->migrate_mutex
HALF_LOCKED2 &mm->mmap_lock
TYPE_LOCK (struct svm_range)->migrate_mutex
TYPE_LOCK (struct svm_range_list)->lock

drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_migrate.c svm_migrate_vram_to_vram() -> svm_migrate_vram_to_ram()

Type Parameter Key Value
PARAM_VALUE 0 prange 4096-ptr_max
PARAM_VALUE 0 prange->actual_loc 1-u32max
PARAM_VALUE 0 prange->migrate_mutex.dep_map->name 0-255
PARAM_VALUE 0 prange->migrate_mutex.first_waiter 0,4096-ptr_max
PARAM_VALUE 0 prange->migrate_mutex.first_waiter->list.prev->next 5159360019465732096
PARAM_VALUE 0 prange->migrate_mutex.first_waiter->list.prev->prev 5159360019465732096
PARAM_VALUE 0 prange->migrate_mutex.osq.tail.counter 0-s32max
PARAM_VALUE 0 prange->migrate_mutex.wait_lock.dep_map->name 0-255
PARAM_VALUE 0 prange->migrate_mutex.wait_lock.owner (-1)
PARAM_VALUE 0 prange->migrate_mutex.wait_lock.owner_cpu u32max
PARAM_VALUE 0 prange->notifier.ops->invalidate 0,4096-ptr_max
PARAM_VALUE 0 prange->notifier.ops->invalidate_finish 0,2193403108630056960
PARAM_VALUE 0 prange->notifier.ops->invalidate_start 0,7606346720449052672
PARAM_VALUE 1 mm 4096-ptr_max
PARAM_VALUE 1 mm->mmap_lock.dep_map->name 0-255
PARAM_VALUE 1 mm->mmap_lock.first_waiter->handoff_set 0-1
PARAM_VALUE 1 mm->mmap_lock.first_waiter->type 0-1
PARAM_VALUE 4 trigger 0-1
PARAM_VALUE 5 fault_page 0
DATA_SOURCE 0 prange $0
DATA_SOURCE 1 mm $4
DATA_SOURCE 4 trigger $5
HARD_MAX 4 trigger 1
RX_PATH
TASK_NOT_RUNNING
UNITS 1 mm unit_byte
LOCK2 &svms->lock
LOCK2 0 &prange->migrate_mutex
LOCK2 1 &mm->mmap_lock
HALF_LOCKED2 &process_info->lock
TYPE_LOCK (struct mm_struct)->mmap_lock
TYPE_LOCK (struct svm_range)->migrate_mutex
TYPE_LOCK (struct svm_range_list)->lock

drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_svm.c svm_range_evict_svm_bo() -> svm_migrate_vram_to_ram()

Type Parameter Key Value
PARAM_VALUE 0 prange 4096-ptr_max
PARAM_VALUE 0 prange->svm_bo_list.next->prev 4096-ptr_max
PARAM_VALUE 0 prange->svm_bo_list.prev->next 4096-ptr_max
PARAM_VALUE 1 mm 4096-ptr_max
PARAM_VALUE 1 mm->mm_users.counter 0-s32max
PARAM_VALUE 4 trigger 3
PARAM_VALUE 5 fault_page 0
CAPPED_DATA 0 &prange->migrate_mutex 1
RX_PATH
TASK_NOT_RUNNING
LOCK2 0 &prange->migrate_mutex
LOCK2 1 &mm->mmap_lock
TYPE_LOCK (struct mm_struct)->mmap_lock
TYPE_LOCK (struct svm_range)->migrate_mutex

drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_svm.c svm_range_restore_pages() -> svm_migrate_vram_to_ram()

Type Parameter Key Value
PARAM_VALUE 0 prange 4096-ptr_max
PARAM_VALUE 0 prange->actual_loc 1-u32max
PARAM_VALUE 0 prange->lock.first_waiter->list.prev->next 5159360019465732096
PARAM_VALUE 0 prange->lock.first_waiter->list.prev->prev 5159360019465732096
PARAM_VALUE 0 prange->lock.first_waiter->task->blocked_lock.dep_map->name 0-255
PARAM_VALUE 0 prange->lock.first_waiter->task->blocked_lock.owner (-1)
PARAM_VALUE 0 prange->lock.first_waiter->task->blocked_lock.owner_cpu 4294967295
PARAM_VALUE 0 prange->lock.first_waiter->task->blocked_lock.raw_lock.val.counter s32min-s32max
PARAM_VALUE 0 prange->lock.first_waiter->task->usage.refs.counter s32min-s32max
PARAM_VALUE 0 prange->migrate_mutex.dep_map->name 0-255
PARAM_VALUE 0 prange->migrate_mutex.first_waiter 0,4096-ptr_max
PARAM_VALUE 0 prange->migrate_mutex.first_waiter->list.prev->next 5159360019465732096
PARAM_VALUE 0 prange->migrate_mutex.osq.tail.counter 0-s32max
PARAM_VALUE 0 prange->migrate_mutex.wait_lock.dep_map->name 0-255
PARAM_VALUE 0 prange->migrate_mutex.wait_lock.owner (-1)
PARAM_VALUE 0 prange->migrate_mutex.wait_lock.owner_cpu u32max
PARAM_VALUE 0 prange->notifier.ops->invalidate 0,4096-ptr_max
PARAM_VALUE 0 prange->notifier.ops->invalidate_finish 0,2193403108630056960
PARAM_VALUE 0 prange->notifier.ops->invalidate_start 0,7606346720449052672
PARAM_VALUE 0 prange->svm_bo->evicting 0-1
PARAM_VALUE 0 prange->svm_bo->eviction_fence->mm->mmap_lock.first_waiter->handoff_set 0-1
PARAM_VALUE 0 prange->svm_bo->eviction_fence->mm->mmap_lock.first_waiter->type 0-1
PARAM_VALUE 0 prange->svm_bo_list.next->prev 4096-ptr_max
PARAM_VALUE 0 prange->svms 4096-ptr_max
PARAM_VALUE 0 prange->svms->deferred_list_lock.rlock.dep_map->name 0-255
PARAM_VALUE 1 mm 4096-ptr_max
PARAM_VALUE 1 mm->mmap_lock.dep_map->name 0-255
PARAM_VALUE 1 mm->mmap_lock.first_waiter->handoff_set 0-1
PARAM_VALUE 1 mm->mmap_lock.first_waiter->list.next 2212933610777083904,2624917664208203776
PARAM_VALUE 1 mm->mmap_lock.first_waiter->list.prev 2212933610777083904,2624917664208203776
PARAM_VALUE 1 mm->mmap_lock.first_waiter->type 0-1
PARAM_VALUE 4 trigger 1
PARAM_VALUE 5 fault_page 0
BUF_SIZE 0 prange (-1),1176
BUF_SIZE 0 prange (-1),1176
CAPPED_DATA 0 prange->preferred_loc 1
CAPPED_DATA 0 &prange->migrate_mutex 1
CAPPED_DATA 3 last_mgr 1
CAPPED_DATA 3 last_mgr 1
DATA_SOURCE 1 mm r get_task_mm
RX_PATH
TASK_NOT_RUNNING
UNITS 2 start_mgr unit_page
LOCK2 &svms->lock
LOCK2 0 &prange->migrate_mutex
LOCK2 1 &mm->mmap_lock
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct mm_struct)->mmap_lock
TYPE_LOCK (struct svm_range)->migrate_mutex
TYPE_LOCK (struct svm_range_list)->lock

drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_svm.c svm_range_restore_pages() -> svm_migrate_vram_to_ram()

Type Parameter Key Value
PARAM_VALUE 0 prange 4096-ptr_max
PARAM_VALUE 0 prange->actual_loc 1-u32max
PARAM_VALUE 0 prange->migrate_mutex.dep_map->name 0-255
PARAM_VALUE 0 prange->migrate_mutex.first_waiter 0,4096-ptr_max
PARAM_VALUE 0 prange->migrate_mutex.first_waiter->list.prev->next 5159360019465732096
PARAM_VALUE 0 prange->migrate_mutex.osq.tail.counter 0-s32max
PARAM_VALUE 0 prange->migrate_mutex.wait_lock.dep_map->name 0-255
PARAM_VALUE 0 prange->migrate_mutex.wait_lock.owner (-1)
PARAM_VALUE 0 prange->migrate_mutex.wait_lock.owner_cpu u32max
PARAM_VALUE 0 prange->notifier.ops->invalidate 0,4096-ptr_max
PARAM_VALUE 0 prange->notifier.ops->invalidate_finish 0,2193403108630056960
PARAM_VALUE 0 prange->notifier.ops->invalidate_start 0,7606346720449052672
PARAM_VALUE 0 prange->svms 4096-ptr_max
PARAM_VALUE 0 prange->svms->deferred_list_lock.rlock.dep_map->name 0-255
PARAM_VALUE 1 mm 4096-ptr_max
PARAM_VALUE 1 mm->mmap_lock.dep_map->name 0-255
PARAM_VALUE 1 mm->mmap_lock.first_waiter->handoff_set 0-1
PARAM_VALUE 1 mm->mmap_lock.first_waiter->list.next 2212933610777083904,2624917664208203776
PARAM_VALUE 1 mm->mmap_lock.first_waiter->list.prev 2212933610777083904,2624917664208203776
PARAM_VALUE 1 mm->mmap_lock.first_waiter->type 0-1
PARAM_VALUE 4 trigger 1
PARAM_VALUE 5 fault_page 0
BUF_SIZE 0 prange (-1),1176
BUF_SIZE 0 prange (-1),1176
CAPPED_DATA 0 &prange->migrate_mutex 1
CAPPED_DATA 3 last_mgr 1
CAPPED_DATA 3 last_mgr 1
DATA_SOURCE 1 mm r get_task_mm
RX_PATH
TASK_NOT_RUNNING
LOCK2 &svms->lock
LOCK2 0 &prange->migrate_mutex
LOCK2 1 &mm->mmap_lock
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct mm_struct)->mmap_lock
TYPE_LOCK (struct svm_range)->migrate_mutex
TYPE_LOCK (struct svm_range_list)->lock

drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_svm.c svm_range_trigger_migration() -> svm_migrate_vram_to_ram()

Type Parameter Key Value
PARAM_VALUE 0 prange 4096-ptr_max
PARAM_VALUE 0 prange->actual_loc 1-u32max
PARAM_VALUE 0 prange->migrate_mutex.dep_map->name 0-255
PARAM_VALUE 0 prange->migrate_mutex.first_waiter 0,4096-ptr_max
PARAM_VALUE 0 prange->migrate_mutex.first_waiter->list.prev->next 5159360019465732096
PARAM_VALUE 0 prange->migrate_mutex.osq.tail.counter 0-s32max
PARAM_VALUE 0 prange->migrate_mutex.wait_lock.dep_map->name 0-255
PARAM_VALUE 0 prange->migrate_mutex.wait_lock.owner (-1)
PARAM_VALUE 0 prange->migrate_mutex.wait_lock.owner_cpu u32max
PARAM_VALUE 0 prange->notifier.ops->invalidate 0,4096-ptr_max
PARAM_VALUE 0 prange->notifier.ops->invalidate_finish 0,2193403108630056960
PARAM_VALUE 0 prange->notifier.ops->invalidate_start 0,7606346720449052672
PARAM_VALUE 0 prange->prefetch_loc 0-4294967294
PARAM_VALUE 0 prange->svm_bo->evicting 0-1
PARAM_VALUE 1 mm 4096-ptr_max
PARAM_VALUE 1 mm->mmap_lock.dep_map->name 0-255
PARAM_VALUE 1 mm->mmap_lock.first_waiter->handoff_set 0-1
PARAM_VALUE 1 mm->mmap_lock.first_waiter->type 0-1
PARAM_VALUE 1 mm->mmap_lock.osq.tail.counter 0-s32max
PARAM_VALUE 4 trigger 0
PARAM_VALUE 5 fault_page 0
DATA_SOURCE 0 prange $1
DATA_SOURCE 1 mm $0
UNITS 1 mm unit_byte
LOCK2 &process_info->lock
LOCK2 &svms->lock
LOCK2 0 &prange->migrate_mutex
LOCK2 1 &mm->mmap_lock
HALF_LOCKED2 &p->mutex
TYPE_LOCK (struct amdkfd_process_info)->lock
TYPE_LOCK (struct mm_struct)->mmap_lock
TYPE_LOCK (struct svm_range)->migrate_mutex
TYPE_LOCK (struct svm_range_list)->lock