Documented in 1 files:

Defined in 2 files as a function:

Referenced in 3 files:

Smatch caller information:

drivers/gpu/drm/xe/xe_vm.c prefetch_thread_func() -> xe_svm_range_start()

Type Parameter Key Value
PARAM_VALUE 0 range 4096-ptr_max
LOCK2 _T->lock
HALF_LOCKED2 &vm->lock

drivers/gpu/drm/xe/xe_pt.c bind_range_prepare() -> xe_svm_range_start()

Type Parameter Key Value
DATA_SOURCE 0 range $4
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 &vm->lock

drivers/gpu/drm/xe/xe_pt.c bind_range_prepare() -> xe_svm_range_start()

Type Parameter Key Value
PARAM_VALUE 0 range 4096-ptr_max
DATA_SOURCE 0 range $4
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 &vm->lock

drivers/gpu/drm/xe/xe_pt.c unbind_range_prepare() -> xe_svm_range_start()

Type Parameter Key Value
PARAM_VALUE 0 range 4096-ptr_max
DATA_SOURCE 0 range $3
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 &vm->lock

drivers/gpu/drm/xe/xe_pt.c unbind_range_prepare() -> xe_svm_range_start()

Type Parameter Key Value
PARAM_VALUE 0 range 4096-ptr_max
DATA_SOURCE 0 range $3
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 &vm->lock

drivers/gpu/drm/xe/xe_pt.c xe_pt_stage_bind() -> xe_svm_range_start()

Type Parameter Key Value
PARAM_VALUE 0 range 4096-ptr_max
DATA_SOURCE 0 range $2
HALF_LOCKED2 &vm->lock

drivers/gpu/drm/xe/xe_pt.c xe_pt_stage_bind() -> xe_svm_range_start()

Type Parameter Key Value
PARAM_VALUE 0 range 4096-ptr_max
DATA_SOURCE 0 range $2
HALF_LOCKED2 &vm->lock

drivers/gpu/drm/xe/xe_pt.c xe_pt_stage_unbind() -> xe_svm_range_start()

Type Parameter Key Value
PARAM_VALUE 0 range 4096-ptr_max
DATA_SOURCE 0 range $3
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &vm->lock

drivers/gpu/drm/xe/xe_pt.c xe_pt_zap_ptes_range() -> xe_svm_range_start()

Type Parameter Key Value
PARAM_VALUE 0 range 4096-ptr_max
DATA_SOURCE 0 range $2
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &gpusvm->notifier_lock
HALF_LOCKED2 &vm->lock

drivers/gpu/drm/xe/xe_svm.c __xe_svm_garbage_collector() -> xe_svm_range_start()

Type Parameter Key Value
PARAM_VALUE 0 range 4096-ptr_max
DATA_SOURCE 0 range $1
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &vm->lock
HALF_LOCKED2 _T->lock

drivers/gpu/drm/xe/xe_svm.c __xe_svm_garbage_collector() -> xe_svm_range_start()

Type Parameter Key Value
PARAM_VALUE 0 range 4096-ptr_max
DATA_SOURCE 0 range $1
RX_PATH
TASK_NOT_RUNNING
LOCK2 _T->lock
HALF_LOCKED2 &vm->lock

drivers/gpu/drm/xe/xe_svm.c __xe_svm_handle_pagefault() -> xe_svm_range_start()

Type Parameter Key Value
PARAM_VALUE 0 range 4096-ptr_max
CAPPED_DATA 0 &range->lock 1
DATA_SOURCE 0 range r xe_svm_range_find_or_insert
LOCK2 &range->lock
LOCK2 &vm->lock
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct xe_svm_range)->lock
TYPE_LOCK (struct xe_vm)->lock

drivers/gpu/drm/xe/xe_svm.c __xe_svm_handle_pagefault() -> xe_svm_range_start()

Type Parameter Key Value
PARAM_VALUE 0 range 4096-ptr_max
CAPPED_DATA 0 &range->lock 1
DATA_SOURCE 0 range r xe_svm_range_find_or_insert
LOCK2 &range->lock
LOCK2 &vm->lock
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct xe_svm_range)->lock
TYPE_LOCK (struct xe_vm)->lock

drivers/gpu/drm/xe/xe_svm.c __xe_svm_handle_pagefault() -> xe_svm_range_start()

Type Parameter Key Value
PARAM_VALUE 0 range 4096-ptr_max
CAPPED_DATA 0 &range->lock 1
DATA_SOURCE 0 range r xe_svm_range_find_or_insert
LOCK2 &range->lock
LOCK2 &vm->lock
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct xe_svm_range)->lock
TYPE_LOCK (struct xe_vm)->lock

drivers/gpu/drm/xe/xe_svm.c __xe_svm_handle_pagefault() -> xe_svm_range_start()

Type Parameter Key Value
PARAM_VALUE 0 range 4096-ptr_max
CAPPED_DATA 0 &range->lock 1
DATA_SOURCE 0 range r xe_svm_range_find_or_insert
LOCK2 &range->lock
LOCK2 &vm->lock
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct xe_svm_range)->lock
TYPE_LOCK (struct xe_vm)->lock

drivers/gpu/drm/xe/xe_svm.c __xe_svm_handle_pagefault() -> xe_svm_range_start()

Type Parameter Key Value
PARAM_VALUE 0 range 4096-ptr_max
CAPPED_DATA 0 &range->lock 1
DATA_SOURCE 0 range r xe_svm_range_find_or_insert
LOCK2 &range->lock
LOCK2 &vm->lock
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct xe_svm_range)->lock
TYPE_LOCK (struct xe_vm)->lock

drivers/gpu/drm/xe/xe_svm.c __xe_svm_handle_pagefault() -> xe_svm_range_start()

Type Parameter Key Value
PARAM_VALUE 0 range 4096-ptr_max
CAPPED_DATA 0 range->pages.dpagemap 1
CAPPED_DATA 0 &range->lock 1
DATA_SOURCE 0 range r xe_svm_range_find_or_insert
LOCK2 &range->lock
LOCK2 &vm->lock
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct xe_svm_range)->lock
TYPE_LOCK (struct xe_vm)->lock

drivers/gpu/drm/xe/xe_svm.c xe_svm_alloc_vram() -> xe_svm_range_start()

Type Parameter Key Value
PARAM_VALUE 0 range 4096-ptr_max
DATA_SOURCE 0 range $0
HALF_LOCKED2 &range->lock
HALF_LOCKED2 _T->lock

drivers/gpu/drm/xe/xe_svm.c xe_svm_alloc_vram() -> xe_svm_range_start()

Type Parameter Key Value
PARAM_VALUE 0 range 4096-ptr_max
DATA_SOURCE 0 range $0
LOCK2 &driver_migrate_lock
HALF_LOCKED2 _T->lock
HALF_LOCKED2 0 &range->lock

drivers/gpu/drm/xe/xe_svm.c xe_svm_garbage_collector() -> xe_svm_range_start()

Type Parameter Key Value
PARAM_VALUE 0 range 4096-ptr_max
PREEMPT_ADD <- disables preempt
LOCK2 &vm->svm.garbage_collector.list_lock
LOCK2 _T->lock

drivers/gpu/drm/xe/xe_svm.c xe_svm_garbage_collector_add_range() -> xe_svm_range_start()

Type Parameter Key Value
PARAM_VALUE 0 range 4096-ptr_max
DATA_SOURCE 0 range $1
RX_PATH
TASK_NOT_RUNNING
LOCK2 &gpusvm->notifier_lock
HALF_LOCKED2 &mm->mmap_lock
TYPE_LOCK (struct drm_gpusvm)->notifier_lock

drivers/gpu/drm/xe/xe_svm.c xe_svm_range_debug() -> xe_svm_range_start()

Type Parameter Key Value
PARAM_VALUE 0 range 4096-ptr_max
DATA_SOURCE 0 range $0
STR_LEN 0 range 10,18,20,24-25,31,33
STR_LEN 0 range 10,18,20,24-25,31,33
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &(&vm->svm.gpusvm)->notifier_lock
HALF_LOCKED2 &vm->lock
HALF_LOCKED2 &vm->svm.gpusvm.notifier_lock
HALF_LOCKED2 _T->lock

drivers/gpu/drm/xe/xe_svm.c xe_svm_range_get_pages() -> xe_svm_range_start()

Type Parameter Key Value
PARAM_VALUE 0 range 4096-ptr_max
DATA_SOURCE 0 range $1
HALF_LOCKED2 &range->lock
HALF_LOCKED2 _T->lock

drivers/gpu/drm/xe/xe_svm.c xe_svm_range_notifier_event_begin() -> xe_svm_range_start()

Type Parameter Key Value
PARAM_VALUE 0 range 4096-ptr_max
DATA_SOURCE 0 range r to_xe_range
RX_PATH
TASK_NOT_RUNNING
LOCK2 &gpusvm->notifier_lock
HALF_LOCKED2 &mm->mmap_lock
TYPE_LOCK (struct drm_gpusvm)->notifier_lock

drivers/gpu/drm/xe/xe_svm.c xe_svm_range_notifier_event_begin() -> xe_svm_range_start()

Type Parameter Key Value
PARAM_VALUE 0 range 4096-ptr_max
DATA_SOURCE 0 range r to_xe_range
RX_PATH
TASK_NOT_RUNNING
LOCK2 &gpusvm->notifier_lock
HALF_LOCKED2 &mm->mmap_lock
TYPE_LOCK (struct drm_gpusvm)->notifier_lock

drivers/gpu/drm/xe/xe_svm.c xe_svm_range_notifier_event_begin() -> xe_svm_range_start()

Type Parameter Key Value
PARAM_VALUE 0 range 4096-ptr_max
DATA_SOURCE 0 range r to_xe_range
RX_PATH
TASK_NOT_RUNNING
LOCK2 &gpusvm->notifier_lock
HALF_LOCKED2 &mm->mmap_lock
TYPE_LOCK (struct drm_gpusvm)->notifier_lock