Defined in 1 files as a function:

Referenced in 1 files:

Smatch caller information:

block/blk-iocost.c ioc_rqos_merge() -> iocg_commit_bio()

Type Parameter Key Value
PARAM_VALUE 0 iocg 4096-ptr_max
PARAM_VALUE 0 iocg->hweight_active 1-u32max
PARAM_VALUE 0 iocg->hweight_inuse 1-u32max
PARAM_VALUE 0 iocg->ioc 4096-ptr_max
PARAM_VALUE 0 iocg->level s32min-(-1),1-s32max
PARAM_VALUE 1 bio 4096-ptr_max
PARAM_VALUE 1 bio->bi_bdev->bd_disk->queue->mq_kobj->release.wq->dfl_pwq 0-s64max
PARAM_VALUE 1 bio->bi_bdev->bd_disk->queue->mq_kobj->release.wq->saved_max_active s32min-s32max
PARAM_VALUE 1 bio->bi_bdev->bd_disk->queue->mq_kobj->release.wq->saved_min_active s32min-s32max
PARAM_VALUE 1 bio->bi_bdev->bd_queue->dev->power.wakeirq->status 0-4294967295
PARAM_VALUE 1 bio->bi_blkg 0,4096-ptr_max
PARAM_VALUE 2 abs_cost 1-u64max
BUF_SIZE 1 bio (-1)-0,32,144-16528
BUF_SIZE 1 bio (-1)-0,32,144-16528
DATA_SOURCE 0 iocg r blkg_to_iocg
DATA_SOURCE 1 bio $2
DATA_SOURCE 2 abs_cost r calc_vtime_cost
DATA_SOURCE 3 cost r adjust_inuse_and_calc_cost
STR_LEN 1 bio->bi_private (-1)
NOSPEC 1 bio->bi_iter.bi_sector
NOSPEC 1 bio->bi_iter.bi_size
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HOST_DATA 1 bio->bi_bdev->bd_queue->last_merge->__sector 0-s32max[c]
HOST_DATA 1 bio->bi_iter.bi_sector 0-u64max
HOST_DATA 1 bio->bi_iter.bi_size 0-u32max[c]
HOST_DATA 1 bio->bi_max_vecs 0-4,16,64,128,256[c]
USER_DATA 1 bio->bi_ioprio 0-u16max
USER_DATA 1 bio->bi_iter.bi_sector 0-u64max
USER_DATA 1 bio->bi_iter.bi_size 0-u32max
USER_DATA 1 bio->bi_max_vecs 0-u16max[c]
USER_DATA 1 bio->bi_next->bi_ioprio 0-u16max[c]
USER_DATA 1 bio->bi_next->bi_max_vecs 0-256[c]
NO_OVERFLOW_SIMPLE 1 bio->bi_bdev->bd_disk->queue->queue_hw_ctx
NO_OVERFLOW_SIMPLE 1 bio->bi_bdev->bd_disk->queue->stats
NO_OVERFLOW_SIMPLE 1 bio->bi_next->bi_iter.bi_sector
NO_OVERFLOW_SIMPLE 1 bio->bi_next->bi_max_vecs
NO_OVERFLOW_SIMPLE 1 bio->bi_pool->bio_pool.min_nr
NO_OVERFLOW_SIMPLE 1 bio->bi_pool->bvec_pool.min_nr
NO_OVERFLOW_SIMPLE 1 bio->bio.bi_bdev->bd_disk->queue->queue_hw_ctx
NO_OVERFLOW_SIMPLE 1 bio->bio.bi_bdev->bd_disk->queue->stats
NO_OVERFLOW_SIMPLE 1 bio->bio.bi_max_vecs
HALF_LOCKED2 1 &bio->bi_bdev->bd_queue->queue_lock

block/blk-iocost.c ioc_rqos_merge() -> iocg_commit_bio()

Type Parameter Key Value
PARAM_VALUE 0 iocg 4096-ptr_max
PARAM_VALUE 0 iocg->active_list.next 4096-ptr_max
PARAM_VALUE 0 iocg->hweight_active 1-u32max
PARAM_VALUE 0 iocg->hweight_inuse 1-u32max
PARAM_VALUE 0 iocg->ioc 4096-ptr_max
PARAM_VALUE 0 iocg->level s32min-(-1),1-s32max
PARAM_VALUE 0 iocg->waitq.lock.rlock.dep_map->name 0-255
PARAM_VALUE 1 bio 4096-ptr_max
PARAM_VALUE 1 bio->bi_bdev->bd_disk->queue->mq_kobj->release.wq->dfl_pwq 0-s64max
PARAM_VALUE 1 bio->bi_bdev->bd_disk->queue->mq_kobj->release.wq->saved_max_active s32min-s32max
PARAM_VALUE 1 bio->bi_bdev->bd_disk->queue->mq_kobj->release.wq->saved_min_active s32min-s32max
PARAM_VALUE 1 bio->bi_bdev->bd_queue->dev->power.wakeirq->status 0-4294967295
PARAM_VALUE 1 bio->bi_blkg 0,4096-ptr_max
PARAM_VALUE 2 abs_cost 1-u64max
BUF_SIZE 1 bio (-1)-0,32,144-16528
BUF_SIZE 1 bio (-1)-0,32,144-16528
CAPPED_DATA 0 &iocg->active_list 1
DATA_SOURCE 0 iocg r blkg_to_iocg
DATA_SOURCE 1 bio $2
DATA_SOURCE 2 abs_cost r calc_vtime_cost
DATA_SOURCE 3 cost r adjust_inuse_and_calc_cost
STR_LEN 1 bio->bi_private (-1)
PARAM_COMPARE 0 &iocg->active_list == $0->active_list.next
NOSPEC 1 bio->bi_iter.bi_sector
NOSPEC 1 bio->bi_iter.bi_size
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HOST_DATA 1 bio->bi_bdev->bd_queue->last_merge->__sector 0-s32max[c]
HOST_DATA 1 bio->bi_iter.bi_sector 0-u64max
HOST_DATA 1 bio->bi_iter.bi_size 0-u32max[c]
HOST_DATA 1 bio->bi_max_vecs 0-4,16,64,128,256[c]
USER_DATA 1 bio->bi_ioprio 0-u16max
USER_DATA 1 bio->bi_iter.bi_sector 0-u64max
USER_DATA 1 bio->bi_iter.bi_size 0-u32max
USER_DATA 1 bio->bi_max_vecs 0-u16max[c]
USER_DATA 1 bio->bi_next->bi_ioprio 0-u16max[c]
USER_DATA 1 bio->bi_next->bi_max_vecs 0-256[c]
NO_OVERFLOW_SIMPLE 1 bio->bi_bdev->bd_disk->queue->queue_hw_ctx
NO_OVERFLOW_SIMPLE 1 bio->bi_bdev->bd_disk->queue->stats
NO_OVERFLOW_SIMPLE 1 bio->bi_next->bi_iter.bi_sector
NO_OVERFLOW_SIMPLE 1 bio->bi_next->bi_max_vecs
NO_OVERFLOW_SIMPLE 1 bio->bi_pool->bio_pool.min_nr
NO_OVERFLOW_SIMPLE 1 bio->bi_pool->bvec_pool.min_nr
NO_OVERFLOW_SIMPLE 1 bio->bio.bi_bdev->bd_disk->queue->queue_hw_ctx
NO_OVERFLOW_SIMPLE 1 bio->bio.bi_bdev->bd_disk->queue->stats
NO_OVERFLOW_SIMPLE 1 bio->bio.bi_max_vecs
LOCK2 &ioc->lock
LOCK2 flags
LOCK2 0 &iocg->waitq.lock
HALF_LOCKED2 1 &bio->bi_bdev->bd_queue->queue_lock
TYPE_LOCK (struct ioc)->lock
TYPE_LOCK (struct wait_queue_head)->lock

block/blk-iocost.c ioc_rqos_throttle() -> iocg_commit_bio()

Type Parameter Key Value
PARAM_VALUE 0 iocg 4096-ptr_max
PARAM_VALUE 0 iocg->abs_vdebt 0
PARAM_VALUE 0 iocg->hweight_active 1-u32max
PARAM_VALUE 0 iocg->hweight_inuse 1-u32max
PARAM_VALUE 0 iocg->ioc 4096-ptr_max
PARAM_VALUE 0 iocg->level s32min-(-1),1-s32max
PARAM_VALUE 1 bio 4096-ptr_max
PARAM_VALUE 1 bio->bi_bdev 4096-ptr_max
PARAM_VALUE 1 bio->bi_bdev->bd_disk 4096-ptr_max
PARAM_VALUE 1 bio->bi_bdev->bd_disk->queue 4096-ptr_max
PARAM_VALUE 1 bio->bi_bdev->bd_disk->queue->limits.integrity.metadata_size 0-1
PARAM_VALUE 1 bio->bi_bdev->bd_disk->queue->mq_kobj->release.wq->dfl_pwq 0-s64max
PARAM_VALUE 1 bio->bi_bdev->bd_disk->queue->mq_kobj->release.wq->saved_max_active s32min-s32max
PARAM_VALUE 1 bio->bi_bdev->bd_disk->queue->mq_kobj->release.wq->saved_min_active s32min-s32max
PARAM_VALUE 1 bio->bi_bdev->bd_disk->zone_wplugs_worker->delays->blkio_count 0-4294967295
PARAM_VALUE 1 bio->bi_bdev->bd_disk->zone_wplugs_worker->delays->blkio_delay_max 0-s64max
PARAM_VALUE 1 bio->bi_bdev->bd_disk->zone_wplugs_worker->delays->blkio_delay_min 0-s64max
PARAM_VALUE 1 bio->bi_bdev->bd_disk->zone_wplugs_worker->sched_task_group->idle s32min-s32max
PARAM_VALUE 1 bio->bi_bdev->bd_queue->dev->power.wakeirq->status 0-4294967295
PARAM_VALUE 1 bio->bi_bdev->bd_queue->elevator->elevator_data->bio_bic->ioprio 0-u16max
PARAM_VALUE 1 bio->bi_bdev->bd_queue->elevator->elevator_data->lock.rlock.dep_map->name 0-255
PARAM_VALUE 1 bio->bi_bdev->bd_queue->last_merge->q->elevator->elevator_data->wr_busy_queues s32min-s32max
PARAM_VALUE 1 bio->bi_bdev->bd_queue->mq_kobj->release.wq->dfl_pwq 0-s64max
PARAM_VALUE 1 bio->bi_bdev->bd_queue->mq_kobj->release.wq->saved_max_active s32min-s32max
PARAM_VALUE 1 bio->bi_bdev->bd_queue->mq_kobj->release.wq->saved_min_active s32min-s32max
PARAM_VALUE 1 bio->bi_bdev->bd_queue->stats->accounting s32min-s32max
PARAM_VALUE 2 abs_cost 1-u64max
BUF_SIZE 1 bio (-1)-0,4,24,32,64,144-s32max
BUF_SIZE 1 bio (-1)-0,4,24,32,64,144-s32max
BUF_SIZE 1 bio->bi_pool (-1),624
BUF_SIZE 1 bio->bi_private (-1)-s32max
DATA_SOURCE 0 iocg r blkg_to_iocg
DATA_SOURCE 1 bio $1
DATA_SOURCE 2 abs_cost r calc_vtime_cost
DATA_SOURCE 3 cost r adjust_inuse_and_calc_cost
STR_LEN 1 bio->bi_private (-1),8,11-12,14,17,19-20,23,26-27,29,31-32
PARAM_COMPARE 0 &iocg->waitq.head == $0->waitq.head.next
NOSPEC 1 bio->bi_iter.bi_sector
NOSPEC 1 bio->bi_iter.bi_size
NOSPEC 1 bio->bi_next->bi_iter.bi_sector
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HOST_DATA 1 bio->bi_bdev->bd_queue->last_merge->__sector 0-18446744073709551614
HOST_DATA 1 bio->bi_iter.bi_sector 0-u64max
HOST_DATA 1 bio->bi_iter.bi_size 0-u32max[c]
HOST_DATA 1 bio->bi_max_vecs 0-u16max[c]
HOST_DATA 1 bio->bi_next->bi_iter.bi_sector 0-u64max
USER_DATA 1 bio->bi_ioprio 0-u16max
USER_DATA 1 bio->bi_iter.bi_sector 0-u64max
USER_DATA 1 bio->bi_iter.bi_size 0-u32max
USER_DATA 1 bio->bi_max_vecs 0-u16max[c]
USER_DATA 1 bio->bi_next->bi_ioprio 0-u16max[c]
USER_DATA 1 bio->bi_next->bi_iter.bi_sector 0-u64max
USER_DATA 1 bio->bi_next->bi_max_vecs 0-256[c]
NO_OVERFLOW_SIMPLE 1 bio->bi_bdev->bd_disk->queue->queue_hw_ctx
NO_OVERFLOW_SIMPLE 1 bio->bi_bdev->bd_disk->queue->stats
NO_OVERFLOW_SIMPLE 1 bio->bi_next->bi_iter.bi_sector
NO_OVERFLOW_SIMPLE 1 bio->bi_next->bi_max_vecs
NO_OVERFLOW_SIMPLE 1 bio->bi_pool->bio_pool.min_nr
NO_OVERFLOW_SIMPLE 1 bio->bi_pool->bvec_pool.min_nr
NO_OVERFLOW_SIMPLE 1 bio->bio.bi_max_vecs
HALF_LOCKED2 1 &bio->bi_bdev->bd_queue->queue_lock

block/blk-iocost.c ioc_rqos_throttle() -> iocg_commit_bio()

Type Parameter Key Value
PARAM_VALUE 0 iocg 4096-ptr_max
PARAM_VALUE 0 iocg->active_list.next 4096-ptr_max
PARAM_VALUE 0 iocg->hweight_active 1-u32max
PARAM_VALUE 0 iocg->hweight_inuse 1-u32max
PARAM_VALUE 0 iocg->ioc 4096-ptr_max
PARAM_VALUE 0 iocg->level s32min-(-1),1-s32max
PARAM_VALUE 0 iocg->waitq.lock.rlock.dep_map->name 0-255
PARAM_VALUE 1 bio 4096-ptr_max
PARAM_VALUE 1 bio->bi_bdev 4096-ptr_max
PARAM_VALUE 1 bio->bi_bdev->bd_disk 4096-ptr_max
PARAM_VALUE 1 bio->bi_bdev->bd_disk->queue 4096-ptr_max
PARAM_VALUE 1 bio->bi_bdev->bd_disk->queue->limits.integrity.metadata_size 0-1
PARAM_VALUE 1 bio->bi_bdev->bd_disk->queue->mq_kobj->release.wq->dfl_pwq 0-s64max
PARAM_VALUE 1 bio->bi_bdev->bd_disk->queue->mq_kobj->release.wq->saved_max_active s32min-s32max
PARAM_VALUE 1 bio->bi_bdev->bd_disk->queue->mq_kobj->release.wq->saved_min_active s32min-s32max
PARAM_VALUE 1 bio->bi_bdev->bd_disk->zone_wplugs_worker->delays->blkio_count 0-4294967295
PARAM_VALUE 1 bio->bi_bdev->bd_disk->zone_wplugs_worker->delays->blkio_delay_max 0-s64max
PARAM_VALUE 1 bio->bi_bdev->bd_disk->zone_wplugs_worker->delays->blkio_delay_min 0-s64max
PARAM_VALUE 1 bio->bi_bdev->bd_disk->zone_wplugs_worker->sched_task_group->idle s32min-s32max
PARAM_VALUE 1 bio->bi_bdev->bd_queue->dev->power.wakeirq->status 0-4294967295
PARAM_VALUE 1 bio->bi_bdev->bd_queue->elevator->elevator_data->bio_bic->ioprio 0-u16max
PARAM_VALUE 1 bio->bi_bdev->bd_queue->elevator->elevator_data->lock.rlock.dep_map->name 0-255
PARAM_VALUE 1 bio->bi_bdev->bd_queue->last_merge->q->elevator->elevator_data->wr_busy_queues s32min-s32max
PARAM_VALUE 1 bio->bi_bdev->bd_queue->mq_kobj->release.wq->dfl_pwq 0-s64max
PARAM_VALUE 1 bio->bi_bdev->bd_queue->mq_kobj->release.wq->saved_max_active s32min-s32max
PARAM_VALUE 1 bio->bi_bdev->bd_queue->mq_kobj->release.wq->saved_min_active s32min-s32max
PARAM_VALUE 1 bio->bi_bdev->bd_queue->stats->accounting s32min-s32max
PARAM_VALUE 2 abs_cost 1-u64max
BUF_SIZE 1 bio (-1)-0,4,24,32,64,144-s32max
BUF_SIZE 1 bio (-1)-0,4,24,32,64,144-s32max
BUF_SIZE 1 bio->bi_pool (-1),624
BUF_SIZE 1 bio->bi_private (-1)-s32max
DATA_SOURCE 0 iocg r blkg_to_iocg
DATA_SOURCE 1 bio $1
DATA_SOURCE 2 abs_cost r calc_vtime_cost
DATA_SOURCE 3 cost r adjust_inuse_and_calc_cost
STR_LEN 1 bio->bi_private (-1),8,11-12,14,17,19-20,23,26-27,29,31-32
PARAM_COMPARE 0 &iocg->active_list == $0->active_list.next
NOSPEC 1 bio->bi_iter.bi_sector
NOSPEC 1 bio->bi_iter.bi_size
NOSPEC 1 bio->bi_next->bi_iter.bi_sector
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HOST_DATA 1 bio->bi_bdev->bd_queue->last_merge->__sector 0-18446744073709551614
HOST_DATA 1 bio->bi_iter.bi_sector 0-u64max
HOST_DATA 1 bio->bi_iter.bi_size 0-u32max[c]
HOST_DATA 1 bio->bi_max_vecs 0-u16max[c]
HOST_DATA 1 bio->bi_next->bi_iter.bi_sector 0-u64max
USER_DATA 1 bio->bi_ioprio 0-u16max
USER_DATA 1 bio->bi_iter.bi_sector 0-u64max
USER_DATA 1 bio->bi_iter.bi_size 0-u32max
USER_DATA 1 bio->bi_max_vecs 0-u16max[c]
USER_DATA 1 bio->bi_next->bi_ioprio 0-u16max[c]
USER_DATA 1 bio->bi_next->bi_iter.bi_sector 0-u64max
USER_DATA 1 bio->bi_next->bi_max_vecs 0-256[c]
NO_OVERFLOW_SIMPLE 1 bio->bi_bdev->bd_disk->queue->queue_hw_ctx
NO_OVERFLOW_SIMPLE 1 bio->bi_bdev->bd_disk->queue->stats
NO_OVERFLOW_SIMPLE 1 bio->bi_next->bi_iter.bi_sector
NO_OVERFLOW_SIMPLE 1 bio->bi_next->bi_max_vecs
NO_OVERFLOW_SIMPLE 1 bio->bi_pool->bio_pool.min_nr
NO_OVERFLOW_SIMPLE 1 bio->bi_pool->bvec_pool.min_nr
NO_OVERFLOW_SIMPLE 1 bio->bio.bi_max_vecs
HALF_LOCKED2 1 &bio->bi_bdev->bd_queue->queue_lock

block/blk-iocost.c iocg_wake_fn() -> iocg_commit_bio()

Type Parameter Key Value
DATA_SOURCE 3 cost r abs_cost_to_cost
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &sci->sc_wait_request.lock
HALF_LOCKED2 &x->lock
HALF_LOCKED2 flags