Defined in 1 files as a function:

Referenced in 1 files:

Smatch caller information:

drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_svm.c svm_range_create_unregistered_range() -> svm_range_add_notifier_locked()

Type Parameter Key Value
PARAM_VALUE 0 mm 4096-ptr_max
PARAM_VALUE 0 mm->mmap_lock.dep_map->name 0-255
PARAM_VALUE 0 mm->mmap_lock.first_waiter->handoff_set 1
PARAM_VALUE 0 mm->mmap_lock.first_waiter->list.next 2212933610777083904,2624917664208203776
PARAM_VALUE 0 mm->mmap_lock.first_waiter->list.prev 2212933610777083904,2624917664208203776
PARAM_VALUE 0 mm->mmap_lock.first_waiter->type 0-1
PARAM_VALUE 0 mm->mmap_lock.osq.tail.counter 0-s32max
PARAM_VALUE 1 prange 4096-ptr_max
PARAM_VALUE 1 prange->child_list.next 4096-ptr_max
PARAM_VALUE 1 prange->child_list.next->next 4096-ptr_max
PARAM_VALUE 1 prange->child_list.prev 4096-ptr_max
PARAM_VALUE 1 prange->child_list.prev->next 4096-ptr_max
PARAM_VALUE 1 prange->child_list.prev->prev 4096-ptr_max
PARAM_VALUE 1 prange->deferred_list.next 4096-ptr_max
PARAM_VALUE 1 prange->deferred_list.next->next 4096-ptr_max
PARAM_VALUE 1 prange->deferred_list.prev 4096-ptr_max
PARAM_VALUE 1 prange->deferred_list.prev->next 4096-ptr_max
PARAM_VALUE 1 prange->deferred_list.prev->prev 4096-ptr_max
PARAM_VALUE 1 prange->flags 3
PARAM_VALUE 1 prange->invalid.counter 0
PARAM_VALUE 1 prange->it_node.last 0-4503599627370494,u64max
PARAM_VALUE 1 prange->it_node.rb.rb_left 0,4096-ptr_max
PARAM_VALUE 1 prange->it_node.rb.rb_left->rb_right 0
PARAM_VALUE 1 prange->it_node.rb.rb_right 0,4096-ptr_max
PARAM_VALUE 1 prange->it_node.rb.rb_right->rb_left 0
PARAM_VALUE 1 prange->last 0-4503599627370494,u64max
PARAM_VALUE 1 prange->list.next 4096-ptr_max
PARAM_VALUE 1 prange->list.next->next 4096-ptr_max
PARAM_VALUE 1 prange->list.next->prev 4096-ptr_max
PARAM_VALUE 1 prange->list.prev->next 4096-ptr_max
PARAM_VALUE 1 prange->list.prev->prev 4096-ptr_max
PARAM_VALUE 1 prange->lock.dep_map->name 0-255
PARAM_VALUE 1 prange->lock.first_waiter 0
PARAM_VALUE 1 prange->lock.magic 4096-ptr_max
PARAM_VALUE 1 prange->lock.osq.tail.counter 0
PARAM_VALUE 1 prange->lock.owner.counter 0
PARAM_VALUE 1 prange->migrate_mutex.dep_map->name 0-255
PARAM_VALUE 1 prange->migrate_mutex.first_waiter 0
PARAM_VALUE 1 prange->migrate_mutex.magic 4096-ptr_max
PARAM_VALUE 1 prange->migrate_mutex.osq.tail.counter 0
PARAM_VALUE 1 prange->migrate_mutex.owner.counter 0
PARAM_VALUE 1 prange->preferred_loc 0,u32max
PARAM_VALUE 1 prange->prefetch_loc u32max
PARAM_VALUE 1 prange->svm_bo_list.next 4096-ptr_max
PARAM_VALUE 1 prange->svm_bo_list.next->next 4096-ptr_max
PARAM_VALUE 1 prange->svm_bo_list.prev 4096-ptr_max
PARAM_VALUE 1 prange->svm_bo_list.prev->next 4096-ptr_max
PARAM_VALUE 1 prange->svm_bo_list.prev->prev 4096-ptr_max
PARAM_VALUE 1 prange->svms 4096-ptr_max
PARAM_VALUE 1 prange->svms->list.prev 4096-ptr_max
PARAM_VALUE 1 prange->svms->list.prev->next 4096-ptr_max
PARAM_VALUE 1 prange->svms->list.prev->next->next 4096-ptr_max
PARAM_VALUE 1 prange->svms->lock.osq.tail.counter 0-s32max
PARAM_VALUE 1 prange->svms->lock.wait_lock.owner (-1)
PARAM_VALUE 1 prange->svms->lock.wait_lock.owner_cpu u32max
PARAM_VALUE 1 prange->svms->objects.rb_leftmost 4096-ptr_max
PARAM_VALUE 1 prange->svms->objects.rb_root.rb_node 4096-ptr_max
PARAM_VALUE 1 prange->update_list.next 4096-ptr_max
PARAM_VALUE 1 prange->update_list.next->next 4096-ptr_max
PARAM_VALUE 1 prange->update_list.prev 4096-ptr_max
PARAM_VALUE 1 prange->update_list.prev->next 4096-ptr_max
PARAM_VALUE 1 prange->update_list.prev->prev 4096-ptr_max
PARAM_VALUE 1 prange->validate_timestamp 0
PARAM_VALUE 1 prange->vram_pages 0
BUF_SIZE 1 prange 1176
BUF_SIZE 1 prange 1176
BUF_SIZE 1 prange->svms 1096
CAPPED_DATA 1 prange->last 1
DATA_SOURCE 0 mm $2
DATA_SOURCE 1 prange r svm_range_new
FUZZY_MAX 1 prange->preferred_loc 0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &svms->lock
LOCK2 0 &mm->mmap_lock
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct mm_struct)->mmap_lock
TYPE_LOCK (struct svm_range_list)->lock

drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_svm.c svm_range_handle_list_op() -> svm_range_add_notifier_locked()

Type Parameter Key Value
PARAM_VALUE 0 mm 4096-ptr_max
PARAM_VALUE 0 mm->mmap_lock.dep_map->name 0-255
PARAM_VALUE 0 mm->mmap_lock.first_waiter->handoff_set 0-1
PARAM_VALUE 0 mm->mmap_lock.first_waiter->list.next 2624917664208203776
PARAM_VALUE 0 mm->mmap_lock.first_waiter->list.prev 2624917664208203776
PARAM_VALUE 0 mm->mmap_lock.first_waiter->type 0-1
PARAM_VALUE 0 mm->mmap_lock.osq.tail.counter 0-s32max
PARAM_VALUE 1 prange 4096-ptr_max
PARAM_VALUE 1 prange->it_node.rb.rb_left 0,4096-ptr_max
PARAM_VALUE 1 prange->it_node.rb.rb_left->rb_right 0
PARAM_VALUE 1 prange->it_node.rb.rb_right 0,4096-ptr_max
PARAM_VALUE 1 prange->it_node.rb.rb_right->rb_left 0
PARAM_VALUE 1 prange->list.next 4096-ptr_max
PARAM_VALUE 1 prange->list.next->prev 4096-ptr_max
PARAM_VALUE 1 prange->list.prev->next 4096-ptr_max
PARAM_VALUE 1 prange->notifier.ops->invalidate 0,4096-ptr_max
PARAM_VALUE 1 prange->notifier.ops->invalidate_finish 0,2193403108630056960
PARAM_VALUE 1 prange->notifier.ops->invalidate_start 0,7606346720449052672
PARAM_VALUE 1 prange->svms 4096-ptr_max
PARAM_VALUE 1 prange->svms->list.prev 4096-ptr_max
PARAM_VALUE 1 prange->svms->list.prev->next 4096-ptr_max
PARAM_VALUE 1 prange->svms->list.prev->next->next 4096-ptr_max
PARAM_VALUE 1 prange->svms->objects.rb_leftmost 4096-ptr_max
PARAM_VALUE 1 prange->svms->objects.rb_root.rb_node 4096-ptr_max
PARAM_VALUE 1 prange->work_item.mm->mmap_lock.first_waiter->type 0-1
PARAM_VALUE 1 prange->work_item.op 4
DATA_SOURCE 0 mm $2
DATA_SOURCE 1 prange $1
NOCHECK_CALL
UNITS 0 mm unit_byte
LOCK2 &svms->lock
LOCK2 0 &mm->mmap_lock
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 &prange->migrate_mutex
TYPE_LOCK (struct mm_struct)->mmap_lock
TYPE_LOCK (struct svm_range_list)->lock

drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_svm.c svm_range_handle_list_op() -> svm_range_add_notifier_locked()

Type Parameter Key Value
PARAM_VALUE 0 mm 4096-ptr_max
PARAM_VALUE 0 mm->mmap_lock.dep_map->name 0-255
PARAM_VALUE 0 mm->mmap_lock.first_waiter->handoff_set 0-1
PARAM_VALUE 0 mm->mmap_lock.first_waiter->list.next 2624917664208203776
PARAM_VALUE 0 mm->mmap_lock.first_waiter->list.prev 2624917664208203776
PARAM_VALUE 0 mm->mmap_lock.first_waiter->type 0-1
PARAM_VALUE 0 mm->mmap_lock.osq.tail.counter 0-s32max
PARAM_VALUE 1 prange 4096-ptr_max
PARAM_VALUE 1 prange->it_node.rb.rb_left 0,4096-ptr_max
PARAM_VALUE 1 prange->it_node.rb.rb_left->rb_right 0
PARAM_VALUE 1 prange->it_node.rb.rb_right 0,4096-ptr_max
PARAM_VALUE 1 prange->it_node.rb.rb_right->rb_left 0
PARAM_VALUE 1 prange->list.next 4096-ptr_max
PARAM_VALUE 1 prange->list.next->prev 4096-ptr_max
PARAM_VALUE 1 prange->list.prev->next 4096-ptr_max
PARAM_VALUE 1 prange->notifier.ops->invalidate 0,4096-ptr_max
PARAM_VALUE 1 prange->notifier.ops->invalidate_finish 0,2193403108630056960
PARAM_VALUE 1 prange->notifier.ops->invalidate_start 0,7606346720449052672
PARAM_VALUE 1 prange->svms 4096-ptr_max
PARAM_VALUE 1 prange->svms->list.prev 4096-ptr_max
PARAM_VALUE 1 prange->svms->list.prev->next 4096-ptr_max
PARAM_VALUE 1 prange->svms->list.prev->next->next 4096-ptr_max
PARAM_VALUE 1 prange->svms->objects.rb_leftmost 4096-ptr_max
PARAM_VALUE 1 prange->svms->objects.rb_root.rb_node 4096-ptr_max
PARAM_VALUE 1 prange->work_item.mm->mmap_lock.first_waiter->type 0-1
PARAM_VALUE 1 prange->work_item.op 5
DATA_SOURCE 0 mm $2
DATA_SOURCE 1 prange $1
NOCHECK_CALL
UNITS 0 mm unit_byte
LOCK2 &svms->lock
LOCK2 0 &mm->mmap_lock
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 &prange->migrate_mutex
TYPE_LOCK (struct mm_struct)->mmap_lock
TYPE_LOCK (struct svm_range_list)->lock

drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_svm.c svm_range_set_attr() -> svm_range_add_notifier_locked()

Type Parameter Key Value
PARAM_VALUE 0 mm 4096-ptr_max
PARAM_VALUE 0 mm->mmap_lock.first_waiter->handoff_set 0-1
PARAM_VALUE 0 mm->mmap_lock.first_waiter->type 0-1
PARAM_VALUE 0 mm->mmap_lock.osq.tail.counter 0-s32max
PARAM_VALUE 1 prange 4096-ptr_max
PARAM_VALUE 1 prange->it_node.rb.rb_left 0,4096-ptr_max
PARAM_VALUE 1 prange->it_node.rb.rb_left->rb_right 0
PARAM_VALUE 1 prange->it_node.rb.rb_right 0,4096-ptr_max
PARAM_VALUE 1 prange->it_node.rb.rb_right->rb_left 0
PARAM_VALUE 1 prange->list.next 4096-ptr_max
PARAM_VALUE 1 prange->list.next->prev 4096-ptr_max
PARAM_VALUE 1 prange->list.prev->next 4096-ptr_max
PARAM_VALUE 1 prange->notifier.ops->invalidate 0,4096-ptr_max
PARAM_VALUE 1 prange->notifier.ops->invalidate_finish 0,2193403108630056960
PARAM_VALUE 1 prange->notifier.ops->invalidate_start 0,7606346720449052672
PARAM_VALUE 1 prange->svms 4096-ptr_max
PARAM_VALUE 1 prange->svms->list.prev 4096-ptr_max
PARAM_VALUE 1 prange->svms->list.prev->next 4096-ptr_max
PARAM_VALUE 1 prange->svms->list.prev->next->next 4096-ptr_max
PARAM_VALUE 1 prange->svms->objects.rb_leftmost 4096-ptr_max
PARAM_VALUE 1 prange->svms->objects.rb_root.rb_node 4096-ptr_max
DATA_SOURCE 0 mm $1
NOCHECK_CALL
UNITS 0 mm unit_byte
LOCK2 &process_info->lock
LOCK2 &svms->lock
LOCK2 0 &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_list)->lock

drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_svm.c svm_range_update_notifier_and_interval_tree() -> svm_range_add_notifier_locked()

Type Parameter Key Value
PARAM_VALUE 0 mm 4096-ptr_max
PARAM_VALUE 0 mm->mmap_lock.dep_map->name 0-255
PARAM_VALUE 0 mm->mmap_lock.first_waiter->handoff_set 0-1
PARAM_VALUE 0 mm->mmap_lock.first_waiter->list.next 2624917664208203776
PARAM_VALUE 0 mm->mmap_lock.first_waiter->list.prev 2624917664208203776
PARAM_VALUE 0 mm->mmap_lock.first_waiter->type 0-1
PARAM_VALUE 0 mm->mmap_lock.osq.tail.counter 0-s32max
PARAM_VALUE 0 mm->notifier_subscriptions->has_itree 0-1
PARAM_VALUE 1 prange 4096-ptr_max
PARAM_VALUE 1 prange->it_node.rb.rb_left 0,4096-ptr_max
PARAM_VALUE 1 prange->it_node.rb.rb_left->rb_right 0
PARAM_VALUE 1 prange->it_node.rb.rb_right 0,4096-ptr_max
PARAM_VALUE 1 prange->it_node.rb.rb_right->rb_left 0
PARAM_VALUE 1 prange->notifier.ops->invalidate 0,4096-ptr_max
PARAM_VALUE 1 prange->notifier.ops->invalidate_finish 0,2193403108630056960
PARAM_VALUE 1 prange->notifier.ops->invalidate_start 0,7606346720449052672
PARAM_VALUE 1 prange->svms->objects.rb_leftmost 4096-ptr_max
PARAM_VALUE 1 prange->svms->objects.rb_root.rb_node 4096-ptr_max
PARAM_VALUE 1 prange->work_item.mm->mmap_lock.first_waiter->handoff_set 0-1
PARAM_VALUE 1 prange->work_item.mm->mmap_lock.first_waiter->type 0-1
PARAM_VALUE 1 prange->work_item.op 2-3
DATA_SOURCE 0 mm $0
DATA_SOURCE 1 prange $1
HARD_MAX 1 prange->work_item.op 3
NOCHECK_CALL
UNITS 0 mm unit_byte
LOCK2 &svms->lock
LOCK2 0 &mm->mmap_lock
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 &prange->migrate_mutex
TYPE_LOCK (struct mm_struct)->mmap_lock
TYPE_LOCK (struct svm_range_list)->lock