Defined in 1 files as a prototype:

Defined in 1 files as a function:

Referenced in 2 files:

Smatch caller information:

block/bfq-iosched.c bfq_completed_request() -> bfq_schedule_dispatch()

Type Parameter Key Value
PARAM_VALUE 0 bfqd 4096-ptr_max
PARAM_VALUE 0 bfqd->last_completed_rq_bfqq 0,4096-ptr_max
PARAM_VALUE 0 bfqd->rq_in_driver 4096-ptr_max
PARAM_VALUE 0 bfqd->tot_rq_in_driver 0
BUF_SIZE 0 bfqd->last_completed_rq_bfqq 0-s32max
DATA_SOURCE 0 bfqd $1
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 flags
LOCK2 0 &bfqd->lock
TYPE_LOCK (struct bfq_data)->lock

block/bfq-iosched.c bfq_exit_bfqq() -> bfq_schedule_dispatch()

Type Parameter Key Value
PARAM_VALUE 0 bfqd 4096-ptr_max
PARAM_VALUE 0 bfqd->actuator_load_threshold 0,4
PARAM_VALUE 0 bfqd->bfq_wr_max_softrt_rate 0,7000
PARAM_VALUE 0 bfqd->bfq_wr_rt_max_time 0-536870912
PARAM_VALUE 0 bfqd->idle_slice_timer.base->cpu_base->expires_next 0-s64max
PARAM_VALUE 0 bfqd->idle_slice_timer.base->cpu_base->softirq_expires_next 0-s64max
PARAM_VALUE 0 bfqd->idle_slice_timer.is_queued 0
PARAM_VALUE 0 bfqd->idle_slice_timer.node.node.next 0
PARAM_VALUE 0 bfqd->idle_slice_timer.node.node.prev 0
PARAM_VALUE 0 bfqd->in_service_queue 0
PARAM_VALUE 0 bfqd->in_service_queue->bfqd->burst_size 0-s32max
PARAM_VALUE 0 bfqd->in_service_queue->burst_list_node->next->pprev 1-u64max
PARAM_VALUE 0 bfqd->in_service_queue->woken_list_node->next->pprev 1-u64max
PARAM_VALUE 0 bfqd->num_actuators 0-8
CAPPED_DATA 0 bfqd->idle_slice_timer.base 1
DATA_SOURCE 0 bfqd $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 irq
HALF_LOCKED2 &bfqd->lock
HALF_LOCKED2 &icq->ioc->lock
HALF_LOCKED2 &ioc->lock
HALF_LOCKED2 &q->queue_lock
HALF_LOCKED2 flags
TYPE_LOCK (struct io_context)->lock

block/bfq-iosched.c bfq_idle_slice_timer_body() -> bfq_schedule_dispatch()

Type Parameter Key Value
PARAM_VALUE 0 bfqd 4096-ptr_max
PARAM_VALUE 0 bfqd->idle_slice_timer.base->cpu_base->expires_next 0-s64max
PARAM_VALUE 0 bfqd->idle_slice_timer.base->cpu_base->softirq_expires_next 0-s64max
PARAM_VALUE 0 bfqd->idle_slice_timer.is_queued 0
PARAM_VALUE 0 bfqd->idle_slice_timer.node.node.next 0
PARAM_VALUE 0 bfqd->idle_slice_timer.node.node.prev 0
PARAM_VALUE 0 bfqd->in_service_queue->bfqd->burst_size 0-s32max
PARAM_VALUE 0 bfqd->in_service_queue->burst_list_node->next->pprev 1-u64max
PARAM_VALUE 0 bfqd->in_service_queue->woken_list_node->next->pprev 1-u64max
PARAM_VALUE 0 bfqd->queue 4096-ptr_max
PARAM_VALUE 0 bfqd->queue->blk_trace->act_mask 1024-u64max
PARAM_VALUE 0 bfqd->rqs_injected 0
PARAM_VALUE 0 bfqd->wait_dispatch 0
PARAM_VALUE 0 bfqd->waited_rq 0
DATA_SOURCE 0 bfqd $0
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 flags
LOCK2 0 &bfqd->lock
HALF_LOCKED2 irq
TYPE_LOCK (struct bfq_data)->lock

block/bfq-cgroup.c bfq_bfqq_move() -> bfq_schedule_dispatch()

Type Parameter Key Value
PARAM_VALUE 0 bfqd 4096-ptr_max
PARAM_VALUE 0 bfqd->in_service_queue 0
PARAM_VALUE 0 bfqd->tot_rq_in_driver 0
BUF_SIZE 0 bfqd (-1),368,3584
BUF_SIZE 0 bfqd (-1),368,3584
DATA_SOURCE 0 bfqd $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 irq
HALF_LOCKED2 &bfqd->lock
HALF_LOCKED2 &blkcg->lock
HALF_LOCKED2 &q->queue_lock
HALF_LOCKED2 flags
HALF_LOCKED2 0 &bfqd->lock
TYPE_LOCK (struct bfq_data)->lock