Documented in 1 files:

Defined in 1 files as a function:

Referenced in 1 files:

Smatch caller information:

block/blk-throttle.c __blk_throtl_bio() -> throtl_schedule_next_dispatch()

Type Parameter Key Value
PARAM_VALUE 0 sq 4096-ptr_max
PARAM_VALUE 0 sq->pending_tree.rb_leftmost 4096-ptr_max
PARAM_VALUE 0 sq->pending_tree.rb_root.rb_node 4096-ptr_max
PARAM_VALUE 1 force 1
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &q->queue_lock
LOCK2 irq
HALF_LOCKED2 &bio->bi_bdev->bd_queue->queue_lock
HALF_LOCKED2 rcu_read
TYPE_LOCK (struct request_queue)->queue_lock

block/blk-throttle.c tg_conf_updated() -> throtl_schedule_next_dispatch()

Type Parameter Key Value
PARAM_VALUE 1 force 1
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &bdev->bd_queue->rq_qos_mutex
LOCK2 &of->mutex
LOCK2 irq
HALF_LOCKED2 &of->prealloc_mutex
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct kernfs_open_file)->mutex

block/blk-throttle.c tg_flush_bios() -> throtl_schedule_next_dispatch()

Type Parameter Key Value
PARAM_VALUE 1 force 1
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &blkcg->lock
HALF_LOCKED2 &q->queue_lock
HALF_LOCKED2 irq
TYPE_LOCK (struct blkcg)->lock

block/blk-throttle.c throtl_pending_timer_fn() -> throtl_schedule_next_dispatch()

Type Parameter Key Value
PARAM_VALUE 0 sq 4096-ptr_max
PARAM_VALUE 1 force 0
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
LOCK2 &q->queue_lock
LOCK2 irq
TYPE_LOCK (struct request_queue)->queue_lock

block/blk-throttle.c throtl_pending_timer_fn() -> throtl_schedule_next_dispatch()

Type Parameter Key Value
PARAM_VALUE 0 sq 1-u64max
PARAM_VALUE 1 force 0
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
LOCK2 &q->queue_lock
LOCK2 irq
TYPE_LOCK (struct request_queue)->queue_lock