Defined in 1 files as a prototype:

Defined in 1 files as a function:

Referenced in 2 files:

Smatch caller information:

2424e8ec9bf51854 gfx_v12_0_userq_priv_fault_work() -> amdgpu_userq_start_hang_detect_work()

Type Parameter Key Value
PARAM_VALUE 0 queue 1-1025,1027-1029,1031-u64max
DATA_SOURCE 0 queue r xa_load
NOCHECK_CALL

28ad57647bf6154f gfx_v11_0_userq_priv_fault_work() -> amdgpu_userq_start_hang_detect_work()

Type Parameter Key Value
PARAM_VALUE 0 queue 1-1025,1027-1029,1031-u64max
DATA_SOURCE 0 queue r xa_load
NOCHECK_CALL

drivers/gpu/drm/amd/amdgpu/amdgpu_userq.c amdgpu_userq_process_fence_irq() -> amdgpu_userq_start_hang_detect_work()

Type Parameter Key Value
PARAM_VALUE 0 queue 4096-ptr_max
PARAM_VALUE 0 queue->fence_drv 4096-ptr_max
PARAM_VALUE 0 queue->fence_drv->cpu_addr 4096-ptr_max
PARAM_VALUE 0 queue->fence_drv->fence_list_lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 queue->fence_drv->fences.next 4096-ptr_max
PARAM_VALUE 0 queue->fence_drv->fences.next->prev 4096-ptr_max
DATA_SOURCE 0 queue r xa_load
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &xa->xa_lock
LOCK2 flags
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct xarray)->xa_lock

drivers/gpu/drm/amd/amdgpu/amdgpu_userq.c amdgpu_userq_process_reset_irq() -> amdgpu_userq_start_hang_detect_work()

Type Parameter Key Value
PARAM_VALUE 0 queue 4096-ptr_max
PARAM_VALUE 0 queue->doorbell_offset 1-1023
PARAM_VALUE 0 queue->vm 4096-ptr_max
CAPPED_DATA 0 queue->doorbell_offset 1
CAPPED_DATA 0 queue->vm->pasid 1
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &xa->xa_lock
LOCK2 flags
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct xarray)->xa_lock

drivers/gpu/drm/amd/amdgpu/amdgpu_userq_fence.c amdgpu_userq_fence_init() -> amdgpu_userq_start_hang_detect_work()

Type Parameter Key Value
PARAM_VALUE 0 queue 4096-ptr_max
PARAM_VALUE 0 queue->fence_drv 4096-ptr_max
PARAM_VALUE 0 queue->fence_drv->fence_list_lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 queue->fence_drv->fences.prev 4096-ptr_max
PARAM_VALUE 0 queue->fence_drv->fences.prev->next 4096-ptr_max
PARAM_VALUE 0 queue->fence_drv->fences.prev->next->next 4096-ptr_max
PARAM_VALUE 0 queue->fence_drv_lock.dep_map->name 0-255
PARAM_VALUE 0 queue->fence_drv_lock.first_waiter 0,4096-ptr_max
PARAM_VALUE 0 queue->fence_drv_lock.first_waiter->list.prev->next 5159360019465732096
PARAM_VALUE 0 queue->fence_drv_lock.first_waiter->list.prev->prev 5159360019465732096
PARAM_VALUE 0 queue->fence_drv_lock.first_waiter->task->blocked_lock.dep_map->name 0-255
PARAM_VALUE 0 queue->fence_drv_lock.first_waiter->task->blocked_lock.owner (-1)
PARAM_VALUE 0 queue->fence_drv_lock.first_waiter->task->blocked_lock.owner_cpu 4294967295
PARAM_VALUE 0 queue->fence_drv_lock.first_waiter->task->blocked_lock.raw_lock.val.counter s32min-s32max
PARAM_VALUE 0 queue->fence_drv_lock.first_waiter->task->usage.refs.counter s32min-s32max
PARAM_VALUE 0 queue->fence_drv_lock.osq.tail.counter 0-s32max
PARAM_VALUE 0 queue->fence_drv_xa.xa_head 0
PARAM_VALUE 0 queue->last_fence 4096-ptr_max
PARAM_VALUE 0 queue->userq_prop 4096-ptr_max
PARAM_VALUE 0 queue->vm 4096-ptr_max
PARAM_VALUE 0 queue->vm->root.bo->tbo.base.resv->fences 4096-ptr_max
PARAM_VALUE 0 queue->vm->root.bo->tbo.base.resv->fences->max_fences 0-4294967295
PARAM_VALUE 0 queue->vm->root.bo->tbo.base.resv->lock.base.dep_map->name 0-255
PARAM_VALUE 0 queue->vm->root.bo->tbo.base.resv->lock.base.first_waiter->list.prev->next 5159360019465732096
PARAM_VALUE 0 queue->vm->root.bo->tbo.base.resv->lock.base.first_waiter->list.prev->prev 5159360019465732096
PARAM_VALUE 0 queue->vm->root.bo->tbo.base.resv->lock.base.first_waiter->task->blocked_lock.owner (-1)
PARAM_VALUE 0 queue->vm->root.bo->tbo.base.resv->lock.base.osq.tail.counter 0-s32max
PARAM_VALUE 0 queue->vm->va.rb_root.rb_node 1-u64max
DATA_SOURCE 0 queue $0
NOCHECK_CALL