Defined in 1 files as a function:

Referenced in 1 files:

Smatch caller information:

drivers/gpu/drm/xe/xe_oa.c xe_oa_append_reports() -> xe_oa_circ_diff()

Type Parameter Key Value
PARAM_VALUE 0 stream 4096-ptr_max
BUF_SIZE 0 stream s32min-(-2),1-s32max
BUF_SIZE 0 stream s32min-(-2),1-s32max
CAPPED_DATA 0 stream->gt->mmio.adj_limit 1
CAPPED_DATA 0 stream->oa_buffer.format->size 1
CAPPED_DATA 0 stream->oa_buffer.head 1
DATA_SOURCE 0 stream $0
BIT_INFO 0 stream->oa_status 0x0,0xffffffb8
HOST_DATA 0 stream->oa_buffer.tail 0,64-u32max[c]
HOST_DATA 0 stream->oa_status 0-u32max
HOST_DATA 1 tail 0,64-u32max[c]
LOCK2 0 &stream->stream_lock
TYPE_LOCK (struct xe_oa_stream)->stream_lock

drivers/gpu/drm/xe/xe_oa.c xe_oa_append_reports() -> xe_oa_circ_diff()

Type Parameter Key Value
PARAM_VALUE 0 stream 4096-ptr_max
BUF_SIZE 0 stream s32min-(-2),1-s32max
BUF_SIZE 0 stream s32min-(-2),1-s32max
CAPPED_DATA 0 stream->gt->mmio.adj_limit 1
CAPPED_DATA 0 stream->oa_buffer.circ_size 1
CAPPED_DATA 0 stream->oa_buffer.format->size 1
CAPPED_DATA 0 stream->oa_buffer.head 1
DATA_SOURCE 0 stream $0
DATA_SOURCE 2 head r xe_oa_circ_incr
BIT_INFO 0 stream->oa_status 0x0,0xffffffb8
HOST_DATA 0 stream->oa_buffer.tail 0,64-u32max[c]
HOST_DATA 0 stream->oa_status 0-u32max
HOST_DATA 1 tail 0,64-u32max[c]
LOCK2 0 &stream->stream_lock
TYPE_LOCK (struct xe_oa_stream)->stream_lock

drivers/gpu/drm/xe/xe_oa.c xe_oa_buffer_check_unlocked() -> xe_oa_circ_diff()

Type Parameter Key Value
PARAM_VALUE 0 stream 4096-ptr_max
BUF_SIZE 0 stream s32min-(-1),1-s32max
BUF_SIZE 0 stream s32min-(-1),1-s32max
CAPPED_DATA 0 stream->gt->mmio.adj_limit 1
DATA_SOURCE 0 stream $0
NOSPEC 0 stream->num_syncs
NOSPEC 0 stream->oa_unit->exclusive_stream->num_syncs
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
HOST_DATA 0 stream->oa_buffer.tail 0,64-u32max[c]
HOST_DATA 0 stream->oa_status 0-u32max
HOST_DATA 1 tail 0,64-u32max
HOST_DATA 2 head 0,64-u32max[c]
USER_DATA 0 stream->no_preempt 0-1
USER_DATA 0 stream->num_syncs 0-1024[c]
USER_DATA 0 stream->oa_buffer.bo->flags 0-u32max[u]
USER_DATA 0 stream->oa_buffer.bo->ttm.base.size 0-u64max[c]
USER_DATA 0 stream->oa_buffer.bo->ttm.base.vma_node.vm_node.size 1-s32max[c]
USER_DATA 0 stream->oa_buffer.bo->ttm.base.vma_node.vm_node.start 0-s32max[c]
USER_DATA 0 stream->oa_buffer.bo->ttm.page_alignment 1,16,512
USER_DATA 0 stream->oa_buffer.circ_size 130433-134217728
USER_DATA 0 stream->oa_unit->exclusive_stream->no_preempt 0-1
USER_DATA 0 stream->oa_unit->exclusive_stream->num_syncs 0-1024[c]
USER_DATA 0 stream->oa_unit->exclusive_stream->oa_buffer.circ_size 130433-134217728
USER_DATA 0 stream->oa_unit->exclusive_stream->period_exponent 0-31
USER_DATA 0 stream->oa_unit->exclusive_stream->periodic 1[c]
USER_DATA 0 stream->oa_unit->exclusive_stream->sample 0-1
USER_DATA 0 stream->period_exponent 0-31
USER_DATA 0 stream->periodic 1[c]
USER_DATA 0 stream->sample 0-1
NO_OVERFLOW_SIMPLE 0 stream->k_exec_q->entity->num_sched_list
LOCK2 flags
LOCK2 0 &stream->oa_buffer.ptr_lock
HALF_LOCKED2 0 &stream->stream_lock
TYPE_LOCK (struct xe_oa_buffer)->ptr_lock

drivers/gpu/drm/xe/xe_oa.c xe_oa_buffer_check_unlocked() -> xe_oa_circ_diff()

Type Parameter Key Value
PARAM_VALUE 0 stream 4096-ptr_max
PARAM_VALUE 2 head 0-639
BUF_SIZE 0 stream s32min-(-1),1-s32max
BUF_SIZE 0 stream s32min-(-1),1-s32max
CAPPED_DATA 0 stream->gt->mmio.adj_limit 1
CAPPED_DATA 0 stream->oa_buffer.tail 1
DATA_SOURCE 0 stream $0
NOSPEC 0 stream->num_syncs
NOSPEC 0 stream->oa_unit->exclusive_stream->num_syncs
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
HOST_DATA 0 stream->oa_buffer.tail 0,64-u32max[c]
HOST_DATA 0 stream->oa_status 0-u32max
HOST_DATA 1 tail 0,64-u32max
USER_DATA 0 stream->no_preempt 0-1
USER_DATA 0 stream->num_syncs 0-1024[c]
USER_DATA 0 stream->oa_buffer.bo->flags 0-u32max[u]
USER_DATA 0 stream->oa_buffer.bo->ttm.base.size 0-u64max[c]
USER_DATA 0 stream->oa_buffer.bo->ttm.base.vma_node.vm_node.size 1-s32max[c]
USER_DATA 0 stream->oa_buffer.bo->ttm.base.vma_node.vm_node.start 0-s32max[c]
USER_DATA 0 stream->oa_buffer.bo->ttm.page_alignment 1,16,512
USER_DATA 0 stream->oa_buffer.circ_size 130433-134217728
USER_DATA 0 stream->oa_unit->exclusive_stream->no_preempt 0-1
USER_DATA 0 stream->oa_unit->exclusive_stream->num_syncs 0-1024[c]
USER_DATA 0 stream->oa_unit->exclusive_stream->oa_buffer.circ_size 130433-134217728
USER_DATA 0 stream->oa_unit->exclusive_stream->period_exponent 0-31
USER_DATA 0 stream->oa_unit->exclusive_stream->periodic 1[c]
USER_DATA 0 stream->oa_unit->exclusive_stream->sample 0-1
USER_DATA 0 stream->period_exponent 0-31
USER_DATA 0 stream->periodic 1[c]
USER_DATA 0 stream->sample 0-1
NO_OVERFLOW_SIMPLE 0 stream->k_exec_q->entity->num_sched_list
LOCK2 flags
LOCK2 0 &stream->oa_buffer.ptr_lock
HALF_LOCKED2 0 &stream->stream_lock
TYPE_LOCK (struct xe_oa_buffer)->ptr_lock

drivers/gpu/drm/xe/xe_oa.c xe_oa_buffer_check_unlocked() -> xe_oa_circ_diff()

Type Parameter Key Value
PARAM_VALUE 0 stream 4096-ptr_max
BUF_SIZE 0 stream s32min-(-1),1-s32max
BUF_SIZE 0 stream s32min-(-1),1-s32max
CAPPED_DATA 0 stream->gt->mmio.adj_limit 1
CAPPED_DATA 0 stream->oa_buffer.tail 1
CAPPED_DATA 2 head 1
DATA_SOURCE 0 stream $0
NOSPEC 0 stream->num_syncs
NOSPEC 0 stream->oa_unit->exclusive_stream->num_syncs
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
HOST_DATA 0 stream->oa_buffer.tail 0,64-u32max[c]
HOST_DATA 0 stream->oa_status 0-u32max
HOST_DATA 1 tail 0,64-u32max
HOST_DATA 2 head 0,64-u32max[c]
USER_DATA 0 stream->no_preempt 0-1
USER_DATA 0 stream->num_syncs 0-1024[c]
USER_DATA 0 stream->oa_buffer.bo->flags 0-u32max[u]
USER_DATA 0 stream->oa_buffer.bo->ttm.base.size 0-u64max[c]
USER_DATA 0 stream->oa_buffer.bo->ttm.base.vma_node.vm_node.size 1-s32max[c]
USER_DATA 0 stream->oa_buffer.bo->ttm.base.vma_node.vm_node.start 0-s32max[c]
USER_DATA 0 stream->oa_buffer.bo->ttm.page_alignment 1,16,512
USER_DATA 0 stream->oa_buffer.circ_size 130433-134217728
USER_DATA 0 stream->oa_unit->exclusive_stream->no_preempt 0-1
USER_DATA 0 stream->oa_unit->exclusive_stream->num_syncs 0-1024[c]
USER_DATA 0 stream->oa_unit->exclusive_stream->oa_buffer.circ_size 130433-134217728
USER_DATA 0 stream->oa_unit->exclusive_stream->period_exponent 0-31
USER_DATA 0 stream->oa_unit->exclusive_stream->periodic 1[c]
USER_DATA 0 stream->oa_unit->exclusive_stream->sample 0-1
USER_DATA 0 stream->period_exponent 0-31
USER_DATA 0 stream->periodic 1[c]
USER_DATA 0 stream->sample 0-1
NO_OVERFLOW_SIMPLE 0 stream->k_exec_q->entity->num_sched_list
LOCK2 flags
LOCK2 0 &stream->oa_buffer.ptr_lock
HALF_LOCKED2 0 &stream->stream_lock
TYPE_LOCK (struct xe_oa_buffer)->ptr_lock

drivers/gpu/drm/xe/xe_oa.c xe_oa_buffer_check_unlocked() -> xe_oa_circ_diff()

Type Parameter Key Value
PARAM_VALUE 0 stream 4096-ptr_max
PARAM_VALUE 2 head 64,128,192,256,320,576,640
BUF_SIZE 0 stream s32min-(-1),1-s32max
BUF_SIZE 0 stream s32min-(-1),1-s32max
CAPPED_DATA 0 stream->gt->mmio.adj_limit 1
CAPPED_DATA 0 stream->oa_buffer.tail 1
CAPPED_DATA 2 head 1
DATA_SOURCE 0 stream $0
NOSPEC 0 stream->num_syncs
NOSPEC 0 stream->oa_unit->exclusive_stream->num_syncs
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
HOST_DATA 0 stream->oa_buffer.tail 0,64-u32max[c]
HOST_DATA 0 stream->oa_status 0-u32max
HOST_DATA 1 tail 0,64-u32max
USER_DATA 0 stream->no_preempt 0-1
USER_DATA 0 stream->num_syncs 0-1024[c]
USER_DATA 0 stream->oa_buffer.bo->flags 0-u32max[u]
USER_DATA 0 stream->oa_buffer.bo->ttm.base.size 0-u64max[c]
USER_DATA 0 stream->oa_buffer.bo->ttm.base.vma_node.vm_node.size 1-s32max[c]
USER_DATA 0 stream->oa_buffer.bo->ttm.base.vma_node.vm_node.start 0-s32max[c]
USER_DATA 0 stream->oa_buffer.bo->ttm.page_alignment 1,16,512
USER_DATA 0 stream->oa_buffer.circ_size 130433-134217728
USER_DATA 0 stream->oa_unit->exclusive_stream->no_preempt 0-1
USER_DATA 0 stream->oa_unit->exclusive_stream->num_syncs 0-1024[c]
USER_DATA 0 stream->oa_unit->exclusive_stream->oa_buffer.circ_size 130433-134217728
USER_DATA 0 stream->oa_unit->exclusive_stream->period_exponent 0-31
USER_DATA 0 stream->oa_unit->exclusive_stream->periodic 1[c]
USER_DATA 0 stream->oa_unit->exclusive_stream->sample 0-1
USER_DATA 0 stream->period_exponent 0-31
USER_DATA 0 stream->periodic 1[c]
USER_DATA 0 stream->sample 0-1
NO_OVERFLOW_SIMPLE 0 stream->k_exec_q->entity->num_sched_list
LOCK2 flags
LOCK2 0 &stream->oa_buffer.ptr_lock
HALF_LOCKED2 0 &stream->stream_lock
TYPE_LOCK (struct xe_oa_buffer)->ptr_lock

drivers/gpu/drm/xe/xe_oa.c xe_oa_buffer_check_unlocked() -> xe_oa_circ_diff()

Type Parameter Key Value
PARAM_VALUE 0 stream 4096-ptr_max
BUF_SIZE 0 stream s32min-(-1),1-s32max
BUF_SIZE 0 stream s32min-(-1),1-s32max
CAPPED_DATA 0 stream->gt->mmio.adj_limit 1
CAPPED_DATA 0 stream->oa_buffer.tail 1
CAPPED_DATA 1 tail 1
CAPPED_DATA 2 head 1
DATA_SOURCE 0 stream $0
DATA_SOURCE 1 tail r xe_oa_circ_diff
NOSPEC 0 stream->num_syncs
NOSPEC 0 stream->oa_unit->exclusive_stream->num_syncs
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
HOST_DATA 0 stream->oa_buffer.tail 0,64-u32max[c]
HOST_DATA 0 stream->oa_status 0-u32max
HOST_DATA 1 tail 0,64-2147483583[c]
HOST_DATA 2 head 0,64-u32max[c]
USER_DATA 0 stream->no_preempt 0-1
USER_DATA 0 stream->num_syncs 0-1024[c]
USER_DATA 0 stream->oa_buffer.bo->flags 0-u32max[u]
USER_DATA 0 stream->oa_buffer.bo->ttm.base.size 0-u64max[c]
USER_DATA 0 stream->oa_buffer.bo->ttm.base.vma_node.vm_node.size 1-s32max[c]
USER_DATA 0 stream->oa_buffer.bo->ttm.base.vma_node.vm_node.start 0-s32max[c]
USER_DATA 0 stream->oa_buffer.bo->ttm.page_alignment 1,16,512
USER_DATA 0 stream->oa_buffer.circ_size 130433-134217728
USER_DATA 0 stream->oa_unit->exclusive_stream->no_preempt 0-1
USER_DATA 0 stream->oa_unit->exclusive_stream->num_syncs 0-1024[c]
USER_DATA 0 stream->oa_unit->exclusive_stream->oa_buffer.circ_size 130433-134217728
USER_DATA 0 stream->oa_unit->exclusive_stream->period_exponent 0-31
USER_DATA 0 stream->oa_unit->exclusive_stream->periodic 1[c]
USER_DATA 0 stream->oa_unit->exclusive_stream->sample 0-1
USER_DATA 0 stream->period_exponent 0-31
USER_DATA 0 stream->periodic 1[c]
USER_DATA 0 stream->sample 0-1
NO_OVERFLOW_SIMPLE 0 stream->k_exec_q->entity->num_sched_list
LOCK2 flags
LOCK2 0 &stream->oa_buffer.ptr_lock
HALF_LOCKED2 0 &stream->stream_lock
TYPE_LOCK (struct xe_oa_buffer)->ptr_lock

drivers/gpu/drm/xe/xe_oa.c xe_oa_buffer_check_unlocked() -> xe_oa_circ_diff()

Type Parameter Key Value
PARAM_VALUE 0 stream 4096-ptr_max
BUF_SIZE 0 stream s32min-(-1),1-s32max
BUF_SIZE 0 stream s32min-(-1),1-s32max
CAPPED_DATA 0 stream->gt->mmio.adj_limit 1
CAPPED_DATA 0 stream->oa_buffer.tail 1
DATA_SOURCE 0 stream $0
DATA_SOURCE 1 tail r xe_oa_circ_diff
NOSPEC 0 stream->num_syncs
NOSPEC 0 stream->oa_unit->exclusive_stream->num_syncs
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
HOST_DATA 0 stream->oa_buffer.tail 0,64-u32max[c]
HOST_DATA 0 stream->oa_status 0-u32max
HOST_DATA 1 tail 0,64-u32max
HOST_DATA 2 head 0,64-u32max
USER_DATA 0 stream->no_preempt 0-1
USER_DATA 0 stream->num_syncs 0-1024[c]
USER_DATA 0 stream->oa_buffer.bo->flags 0-u32max[u]
USER_DATA 0 stream->oa_buffer.bo->ttm.base.size 0-u64max[c]
USER_DATA 0 stream->oa_buffer.bo->ttm.base.vma_node.vm_node.size 1-s32max[c]
USER_DATA 0 stream->oa_buffer.bo->ttm.base.vma_node.vm_node.start 0-s32max[c]
USER_DATA 0 stream->oa_buffer.bo->ttm.page_alignment 1,16,512
USER_DATA 0 stream->oa_buffer.circ_size 130433-134217728
USER_DATA 0 stream->oa_unit->exclusive_stream->no_preempt 0-1
USER_DATA 0 stream->oa_unit->exclusive_stream->num_syncs 0-1024[c]
USER_DATA 0 stream->oa_unit->exclusive_stream->oa_buffer.circ_size 130433-134217728
USER_DATA 0 stream->oa_unit->exclusive_stream->period_exponent 0-31
USER_DATA 0 stream->oa_unit->exclusive_stream->periodic 1[c]
USER_DATA 0 stream->oa_unit->exclusive_stream->sample 0-1
USER_DATA 0 stream->period_exponent 0-31
USER_DATA 0 stream->periodic 1[c]
USER_DATA 0 stream->sample 0-1
NO_OVERFLOW_SIMPLE 0 stream->k_exec_q->entity->num_sched_list
LOCK2 flags
LOCK2 0 &stream->oa_buffer.ptr_lock
HALF_LOCKED2 0 &stream->stream_lock
TYPE_LOCK (struct xe_oa_buffer)->ptr_lock

drivers/gpu/drm/xe/xe_oa.c xe_oa_buffer_check_unlocked() -> xe_oa_circ_diff()

Type Parameter Key Value
PARAM_VALUE 0 stream 4096-ptr_max
BUF_SIZE 0 stream s32min-(-1),1-s32max
BUF_SIZE 0 stream s32min-(-1),1-s32max
CAPPED_DATA 0 stream->gt->mmio.adj_limit 1
CAPPED_DATA 0 stream->oa_buffer.tail 1
CAPPED_DATA 1 tail 1
DATA_SOURCE 0 stream $0
NOSPEC 0 stream->num_syncs
NOSPEC 0 stream->oa_unit->exclusive_stream->num_syncs
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
HOST_DATA 0 stream->oa_buffer.tail 0,64-u32max[c]
HOST_DATA 0 stream->oa_status 0-u32max
HOST_DATA 1 tail 0,64-u32max[c]
USER_DATA 0 stream->no_preempt 0-1
USER_DATA 0 stream->num_syncs 0-1024[c]
USER_DATA 0 stream->oa_buffer.bo->flags 0-u32max[u]
USER_DATA 0 stream->oa_buffer.bo->ttm.base.size 0-u64max[c]
USER_DATA 0 stream->oa_buffer.bo->ttm.base.vma_node.vm_node.size 1-s32max[c]
USER_DATA 0 stream->oa_buffer.bo->ttm.base.vma_node.vm_node.start 0-s32max[c]
USER_DATA 0 stream->oa_buffer.bo->ttm.page_alignment 1,16,512
USER_DATA 0 stream->oa_buffer.circ_size 130433-134217728
USER_DATA 0 stream->oa_unit->exclusive_stream->no_preempt 0-1
USER_DATA 0 stream->oa_unit->exclusive_stream->num_syncs 0-1024[c]
USER_DATA 0 stream->oa_unit->exclusive_stream->oa_buffer.circ_size 130433-134217728
USER_DATA 0 stream->oa_unit->exclusive_stream->period_exponent 0-31
USER_DATA 0 stream->oa_unit->exclusive_stream->periodic 1[c]
USER_DATA 0 stream->oa_unit->exclusive_stream->sample 0-1
USER_DATA 0 stream->period_exponent 0-31
USER_DATA 0 stream->periodic 1[c]
USER_DATA 0 stream->sample 0-1
NO_OVERFLOW_SIMPLE 0 stream->k_exec_q->entity->num_sched_list
LOCK2 flags
LOCK2 0 &stream->oa_buffer.ptr_lock
HALF_LOCKED2 0 &stream->stream_lock
TYPE_LOCK (struct xe_oa_buffer)->ptr_lock