Defined in 1 files as a prototype:

Defined in 1 files as a function:

Referenced in 2 files:

Smatch caller information:

io_uring/io_uring.c __do_sys_io_uring_enter() -> io_run_local_work_locked()

Type Parameter Key Value
PARAM_VALUE 0 ctx 4096-ptr_max
PARAM_VALUE 0 ctx->apoll_cache->entries 4096-ptr_max
PARAM_VALUE 0 ctx->cached_sq_head 0
PARAM_VALUE 0 ctx->completion_lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 ctx->io_ev_fd->last_cq_tail 0-4294967295
PARAM_VALUE 0 ctx->io_ev_fd->ops.counter 0-s32max
PARAM_VALUE 0 ctx->io_ev_fd->rcu.next 0
PARAM_VALUE 0 ctx->io_ev_fd->refs.refs.counter s32min-s32max
PARAM_VALUE 0 ctx->loop_step 0
PARAM_VALUE 0 ctx->refs.percpu_count_ptr 1-u64max
PARAM_VALUE 0 ctx->submit_state.cq_flush 0
PARAM_VALUE 0 ctx->submit_state.free_list.next 0,4096-ptr_max
PARAM_VALUE 0 ctx->submit_state.link.head 0,4096-ptr_max
PARAM_VALUE 0 ctx->submit_state.link.head->ctx->defer_list.prev 4096-ptr_max
PARAM_VALUE 0 ctx->submit_state.link.head->ctx->defer_list.prev->next 4096-ptr_max
PARAM_VALUE 0 ctx->submit_state.link.head->ctx->defer_list.prev->next->next 4096-ptr_max
PARAM_VALUE 0 ctx->submit_state.link.head->ctx->int_flags 16-u32max
PARAM_VALUE 0 ctx->submit_state.link.head->ctx->refs.percpu_count_ptr 1-u64max
PARAM_VALUE 0 ctx->submit_state.link.head->ctx->submit_state.compl_reqs.first 1-u64max
PARAM_VALUE 0 ctx->submit_state.link.head->ctx->timeout_lock.dep_map->name 0-255
PARAM_VALUE 0 ctx->submit_state.link.head->ctx->timeout_lock.owner (-1)
PARAM_VALUE 0 ctx->submit_state.link.head->ctx->timeout_lock.owner_cpu u32max
PARAM_VALUE 0 ctx->submit_state.plug->cached_rqs.head->mq_hctx->run_work.timer->entry.pprev 4096-ptr_max
PARAM_VALUE 0 ctx->submit_state.plug.cached_rqs.head->mq_hctx->next_cpu 0-s32max
PARAM_VALUE 0 ctx->submit_state.plug.cached_rqs.head->mq_hctx->next_cpu_batch 1-s32max
PARAM_VALUE 0 ctx->submit_state.plug.cached_rqs.head->mq_hctx->run_work.timer.is_hard 0-1
PARAM_VALUE 0 ctx->submit_state.plug.cached_rqs.head->mq_hctx->run_work.timer.is_lazy 0-1
PARAM_VALUE 0 ctx->submit_state.plug.cached_rqs.head->mq_hctx->run_work.timer.is_queued 0-1
PARAM_VALUE 0 ctx->submit_state.plug.cached_rqs.head->mq_hctx->run_work.timer.is_soft 0-1
PARAM_VALUE 0 ctx->submit_state.plug.cached_rqs.head->mq_hctx->run_work.work.entry.next->next 1-u64max
PARAM_VALUE 0 ctx->submit_state.plug.cached_rqs.head->mq_hctx->run_work.work.entry.prev->next 1-u64max
PARAM_VALUE 0 ctx->submit_state.plug.cached_rqs.head->mq_hctx->run_work.work.entry.prev->prev 1-u64max
PARAM_VALUE 0 ctx->submit_state.submit_nr 1-u16max
PARAM_VALUE 0 ctx->timeout_lock.dep_map->name 0-255
PARAM_VALUE 0 ctx->timeout_lock.owner (-1)
PARAM_VALUE 0 ctx->timeout_lock.owner_cpu u32max
PARAM_VALUE 0 ctx->uring_lock.dep_map->name 0-255
PARAM_VALUE 0 ctx->uring_lock.first_waiter 0,4096-ptr_max
PARAM_VALUE 0 ctx->uring_lock.first_waiter->list.prev->next 5159360019465732096
PARAM_VALUE 0 ctx->uring_lock.osq.tail.counter 0-s32max
PARAM_VALUE 0 ctx->uring_lock.wait_lock.dep_map->name 0-255
PARAM_VALUE 0 ctx->uring_lock.wait_lock.owner (-1)
PARAM_VALUE 0 ctx->uring_lock.wait_lock.owner_cpu u32max
BUF_SIZE 0 ctx s32min-(-2),1-s32max
BUF_SIZE 0 ctx s32min-(-2),1-s32max
CAPPED_DATA 0 ctx 1
CAPPED_DATA 0 &ctx->uring_lock 1
DATA_SOURCE 1 min_events $2
BIT_INFO 0 ctx->flags 0x2000,0xfffffffd
BIT_INFO 0 ctx->int_flags 0x0,0xfffffeff
USER_DATA 0 ctx->submit_state.need_plug 0-1
USER_DATA 1 min_events s32min-s32max
LOCK2 0 &ctx->uring_lock
TYPE_LOCK (struct io_ring_ctx)->uring_lock

io_uring/io_uring.c __do_sys_io_uring_enter() -> io_run_local_work_locked()

Type Parameter Key Value
PARAM_VALUE 0 ctx 4096-ptr_max
PARAM_VALUE 0 ctx->apoll_cache->entries 4096-ptr_max
PARAM_VALUE 0 ctx->cached_sq_head 0
PARAM_VALUE 0 ctx->completion_lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 ctx->io_ev_fd->last_cq_tail 0-4294967295
PARAM_VALUE 0 ctx->io_ev_fd->ops.counter 0-s32max
PARAM_VALUE 0 ctx->io_ev_fd->rcu.next 0
PARAM_VALUE 0 ctx->io_ev_fd->refs.refs.counter s32min-s32max
PARAM_VALUE 0 ctx->loop_step 0
PARAM_VALUE 0 ctx->refs.percpu_count_ptr 1-u64max
PARAM_VALUE 0 ctx->submit_state.cq_flush 0
PARAM_VALUE 0 ctx->submit_state.free_list.next 0,4096-ptr_max
PARAM_VALUE 0 ctx->submit_state.link.head 0,4096-ptr_max
PARAM_VALUE 0 ctx->submit_state.link.head->ctx->defer_list.prev 4096-ptr_max
PARAM_VALUE 0 ctx->submit_state.link.head->ctx->defer_list.prev->next 4096-ptr_max
PARAM_VALUE 0 ctx->submit_state.link.head->ctx->defer_list.prev->next->next 4096-ptr_max
PARAM_VALUE 0 ctx->submit_state.link.head->ctx->int_flags 16-u32max
PARAM_VALUE 0 ctx->submit_state.link.head->ctx->refs.percpu_count_ptr 1-u64max
PARAM_VALUE 0 ctx->submit_state.link.head->ctx->submit_state.compl_reqs.first 1-u64max
PARAM_VALUE 0 ctx->submit_state.link.head->ctx->timeout_lock.dep_map->name 0-255
PARAM_VALUE 0 ctx->submit_state.link.head->ctx->timeout_lock.owner (-1)
PARAM_VALUE 0 ctx->submit_state.link.head->ctx->timeout_lock.owner_cpu u32max
PARAM_VALUE 0 ctx->submit_state.plug->cached_rqs.head->mq_hctx->run_work.timer->entry.pprev 4096-ptr_max
PARAM_VALUE 0 ctx->submit_state.plug.cached_rqs.head->mq_hctx->next_cpu 0-s32max
PARAM_VALUE 0 ctx->submit_state.plug.cached_rqs.head->mq_hctx->next_cpu_batch 1-s32max
PARAM_VALUE 0 ctx->submit_state.plug.cached_rqs.head->mq_hctx->run_work.timer.is_hard 0-1
PARAM_VALUE 0 ctx->submit_state.plug.cached_rqs.head->mq_hctx->run_work.timer.is_lazy 0-1
PARAM_VALUE 0 ctx->submit_state.plug.cached_rqs.head->mq_hctx->run_work.timer.is_queued 0-1
PARAM_VALUE 0 ctx->submit_state.plug.cached_rqs.head->mq_hctx->run_work.timer.is_soft 0-1
PARAM_VALUE 0 ctx->submit_state.plug.cached_rqs.head->mq_hctx->run_work.work.entry.next->next 1-u64max
PARAM_VALUE 0 ctx->submit_state.plug.cached_rqs.head->mq_hctx->run_work.work.entry.prev->next 1-u64max
PARAM_VALUE 0 ctx->submit_state.plug.cached_rqs.head->mq_hctx->run_work.work.entry.prev->prev 1-u64max
PARAM_VALUE 0 ctx->submit_state.submit_nr 1-u16max
PARAM_VALUE 0 ctx->timeout_lock.dep_map->name 0-255
PARAM_VALUE 0 ctx->timeout_lock.owner (-1)
PARAM_VALUE 0 ctx->timeout_lock.owner_cpu u32max
PARAM_VALUE 0 ctx->uring_lock.dep_map->name 0-255
PARAM_VALUE 0 ctx->uring_lock.first_waiter 0,4096-ptr_max
PARAM_VALUE 0 ctx->uring_lock.first_waiter->list.prev->next 5159360019465732096
PARAM_VALUE 0 ctx->uring_lock.osq.tail.counter 0-s32max
PARAM_VALUE 0 ctx->uring_lock.wait_lock.dep_map->name 0-255
PARAM_VALUE 0 ctx->uring_lock.wait_lock.owner (-1)
PARAM_VALUE 0 ctx->uring_lock.wait_lock.owner_cpu u32max
BUF_SIZE 0 ctx s32min-(-2),1-s32max
BUF_SIZE 0 ctx s32min-(-2),1-s32max
CAPPED_DATA 0 ctx 1
CAPPED_DATA 0 &ctx->uring_lock 1
DATA_SOURCE 1 min_events $2
BIT_INFO 0 ctx->flags 0x2000,0xfffffffd
BIT_INFO 0 ctx->int_flags 0x0,0xfffffeff
USER_DATA 0 ctx->submit_state.need_plug 0-1
USER_DATA 1 min_events s32min-s32max
LOCK2 0 &ctx->uring_lock
TYPE_LOCK (struct io_ring_ctx)->uring_lock

io_uring/io_uring.c io_iopoll_check() -> io_run_local_work_locked()

Type Parameter Key Value
PARAM_VALUE 0 ctx 4096-ptr_max
PARAM_VALUE 0 ctx->int_flags 256-u32max
PARAM_VALUE 0 ctx->loop_step 0
PARAM_VALUE 0 ctx->sq_data->thread->sched_class->uclamp_enabled 0-1
PARAM_VALUE 0 ctx->uring_lock.dep_map->name 0-255
PARAM_VALUE 0 ctx->uring_lock.first_waiter 0,4096-ptr_max
PARAM_VALUE 0 ctx->uring_lock.first_waiter->list.prev->next 5159360019465732096
PARAM_VALUE 0 ctx->uring_lock.osq.tail.counter 0-s32max
PARAM_VALUE 0 ctx->uring_lock.wait_lock.dep_map->name 0-255
PARAM_VALUE 0 ctx->uring_lock.wait_lock.owner (-1)
PARAM_VALUE 0 ctx->uring_lock.wait_lock.owner_cpu u32max
BUF_SIZE 0 ctx s32min-(-2),1-s32max
BUF_SIZE 0 ctx s32min-(-2),1-s32max
CAPPED_DATA 0 ctx 1
CAPPED_DATA 0 ctx->rings_rcu 1
CAPPED_DATA 1 min_events 1
DATA_SOURCE 0 ctx $0
DATA_SOURCE 1 min_events $1 [m]
BIT_INFO 0 ctx->int_flags 0x100,0xffffffffffffffff
NOSPEC 1 min_events
NOSPEC 1 min_events
USER_DATA 0 ctx->submit_state.need_plug 0-1
USER_DATA 1 min_events 1-s32max[c]
LOCK2 0 &ctx->uring_lock
TYPE_LOCK (struct io_ring_ctx)->uring_lock

io_uring/loop.c __io_run_loop() -> io_run_local_work_locked()

Type Parameter Key Value
PARAM_VALUE 0 ctx 4096-ptr_max
PARAM_VALUE 0 ctx->loop_step 1
PARAM_VALUE 0 ctx->rings 4096-ptr_max
PARAM_VALUE 0 ctx->uring_lock.dep_map->name 0-255
PARAM_VALUE 0 ctx->uring_lock.first_waiter 0,4096-ptr_max
PARAM_VALUE 0 ctx->uring_lock.first_waiter->list.prev->next 5159360019465732096
PARAM_VALUE 0 ctx->uring_lock.osq.tail.counter 0-s32max
PARAM_VALUE 0 ctx->uring_lock.wait_lock.dep_map->name 0-255
PARAM_VALUE 0 ctx->uring_lock.wait_lock.owner (-1)
PARAM_VALUE 0 ctx->uring_lock.wait_lock.owner_cpu u32max
PARAM_VALUE 1 min_events 0-s32max
BUF_SIZE 0 ctx s32min-(-2),1-s32max
BUF_SIZE 0 ctx s32min-(-2),1-s32max
DATA_SOURCE 0 ctx $0
FUZZY_MAX 1 min_events 1
NOCHECK_CALL
LOCK2 0 &ctx->uring_lock
TYPE_LOCK (struct io_ring_ctx)->uring_lock