Defined in 1 files as a function:
Referenced in 1 files:
Smatch caller information:
block/blk-iocost.c adjust_inuse_and_calc_cost() -> propagate_weights()
| 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 | 3 | save | 1 |
| PARAM_VALUE | 4 | now | 3907610017061425152,5497530922906451968 |
| CAPPED_DATA | 0 | &iocg->active_list | 1 |
| DATA_SOURCE | 0 | iocg | $0 |
| DATA_SOURCE | 4 | now | $3 |
| PARAM_COMPARE | 0 | iocg->active | != $0->inuse |
| PARAM_COMPARE | 0 | &iocg->active_list | != $0->active_list.next |
| PARAM_COMPARE | 1 | active | != $0->inuse |
| PARAM_COMPARE | 2 | inuse | >= $2 |
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| LOCK2 | &ioc->lock | ||
| LOCK2 | flags | ||
| HALF_LOCKED2 | &bio->bi_bdev->bd_queue->queue_lock | ||
| TYPE_LOCK | (struct ioc)->lock |
block/blk-iocost.c ioc_pd_free() -> propagate_weights()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | iocg | 4096-ptr_max |
| PARAM_VALUE | 0 | iocg->ioc | 4096-ptr_max |
| PARAM_VALUE | 1 | active | 0 |
| PARAM_VALUE | 2 | inuse | 0 |
| PARAM_VALUE | 3 | save | 0 |
| PARAM_VALUE | 4 | now | 7040180472332210176 |
| CAPPED_DATA | 0 | &iocg->active_list | 1 |
| DATA_SOURCE | 0 | iocg | r pd_to_iocg |
| PARAM_COMPARE | 0 | &iocg->active_list | != $0->active_list.next |
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| LOCK2 | &ioc->lock | ||
| LOCK2 | flags | ||
| HALF_LOCKED2 | &blkcg->lock | ||
| HALF_LOCKED2 | &q->blkcg_mutex | ||
| HALF_LOCKED2 | &q->queue_lock | ||
| HALF_LOCKED2 | irq | ||
| TYPE_LOCK | (struct ioc)->lock |
block/blk-iocost.c iocg_activate() -> propagate_weights()
| 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->active_list.prev | 4096-ptr_max |
| PARAM_VALUE | 0 | iocg->child_active_sum | 0 |
| PARAM_VALUE | 0 | iocg->ioc | 4096-ptr_max |
| PARAM_VALUE | 0 | iocg->ioc->active_iocgs.next | 4096-ptr_max |
| PARAM_VALUE | 0 | iocg->ioc->active_iocgs.next->next | 4096-ptr_max |
| PARAM_VALUE | 0 | iocg->ioc->active_iocgs.next->prev | 4096-ptr_max |
| PARAM_VALUE | 0 | iocg->ioc->lock.rlock.dep_map->name | 0-255 |
| PARAM_VALUE | 0 | iocg->level | s32min-(-1),1-s32max |
| PARAM_VALUE | 3 | save | 1 |
| PARAM_VALUE | 4 | now | 5497530922906451968 |
| CAPPED_DATA | 0 | &iocg->active_list | 1 |
| DATA_SOURCE | 0 | iocg | $0 |
| DATA_SOURCE | 4 | now | $1 |
| FUZZY_MAX | 0 | iocg->level | 2 |
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| LOCK2 | &ioc->lock | ||
| LOCK2 | irq | ||
| HALF_LOCKED2 | &bio->bi_bdev->bd_queue->queue_lock | ||
| TYPE_LOCK | (struct ioc)->lock |
block/blk-iocost.c iocg_handle_over_budget() -> propagate_weights()
| 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 | 0 | iocg->waitq.lock.rlock.dep_map->name | 0-255 |
| PARAM_VALUE | 3 | save | 1 |
| PARAM_VALUE | 4 | now | 5497530922906451968 |
| CAPPED_DATA | 0 | &iocg->active_list | 1 |
| DATA_SOURCE | 0 | iocg | $1 |
| DATA_SOURCE | 4 | now | $3 |
| PARAM_COMPARE | 0 | iocg->active | != $0->inuse |
| PARAM_COMPARE | 0 | &iocg->active_list | != $0->active_list.next |
| PARAM_COMPARE | 1 | active | != $0->inuse |
| PARAM_COMPARE | 2 | inuse | != $0->inuse |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| LOCK2 | flags | ||
| LOCK2 | 0 | &iocg->ioc->lock | |
| LOCK2 | 0 | &iocg->waitq.lock | |
| HALF_LOCKED2 | &bio->bi_bdev->bd_queue->queue_lock | ||
| TYPE_LOCK | (struct ioc)->lock | ||
| TYPE_LOCK | (struct wait_queue_head)->lock |
block/blk-iocost.c iocg_incur_debt() -> propagate_weights()
| 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 | 0 | iocg->waitq.lock.rlock.dep_map->name | 0-255 |
| PARAM_VALUE | 2 | inuse | 0 |
| PARAM_VALUE | 3 | save | 0 |
| PARAM_VALUE | 4 | now | 3907610017061425152,5497530922906451968 |
| CAPPED_DATA | 0 | &iocg->active_list | 1 |
| DATA_SOURCE | 0 | iocg | $0 |
| DATA_SOURCE | 4 | now | $2 |
| PARAM_COMPARE | 0 | &iocg->active_list | != $0->active_list.next |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| LOCK2 | flags | ||
| LOCK2 | 0 | &iocg->waitq.lock | |
| HALF_LOCKED2 | &bio->bi_bdev->bd_queue->queue_lock | ||
| HALF_LOCKED2 | &ioc->lock | ||
| HALF_LOCKED2 | 0 | &iocg->ioc->lock | |
| TYPE_LOCK | (struct ioc)->lock | ||
| TYPE_LOCK | (struct wait_queue_head)->lock |
block/blk-iocost.c iocg_pay_debt() -> propagate_weights()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | iocg | 4096-ptr_max |
| PARAM_VALUE | 0 | iocg->abs_vdebt | 0 |
| PARAM_VALUE | 0 | iocg->active_list.next | 4096-ptr_max |
| PARAM_VALUE | 0 | iocg->indebt_since | 0 |
| PARAM_VALUE | 0 | iocg->ioc | 4096-ptr_max |
| PARAM_VALUE | 3 | save | 0 |
| PARAM_VALUE | 4 | now | 5497530922906451968,6482822333451345920,8240678478204813312 |
| CAPPED_DATA | 0 | &iocg->active_list | 1 |
| DATA_SOURCE | 0 | iocg | $0 |
| DATA_SOURCE | 4 | now | $2 |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| LOCK2 | 0 | &iocg->waitq.lock | |
| HALF_LOCKED2 | &ioc->lock | ||
| HALF_LOCKED2 | flags | ||
| HALF_LOCKED2 | irq | ||
| HALF_LOCKED2 | 0 | &iocg->ioc->lock | |
| TYPE_LOCK | (struct wait_queue_head)->lock |
block/blk-iocost.c weight_updated() -> propagate_weights()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | iocg | 4096-ptr_max |
| PARAM_VALUE | 0 | iocg->active | 1-u32max |
| PARAM_VALUE | 0 | iocg->ioc | 4096-ptr_max |
| PARAM_VALUE | 0 | iocg->pd.blkg->blkcg | 0,4096-ptr_max |
| PARAM_VALUE | 3 | save | 1 |
| PARAM_VALUE | 4 | now | 1514489097105772544,7018507348405301248 |
| DATA_SOURCE | 0 | iocg | $0 |
| DATA_SOURCE | 4 | now | $1 |
| PARAM_COMPARE | 0 | iocg->weight | != $1 |
| PARAM_COMPARE | 1 | active | != $0->weight |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| LOCK2 | irq | ||
| HALF_LOCKED2 | &bdev->bd_queue->rq_qos_mutex | ||
| HALF_LOCKED2 | &blkcg->lock | ||
| HALF_LOCKED2 | &ioc->lock | ||
| HALF_LOCKED2 | &of->mutex | ||
| HALF_LOCKED2 | &q->queue_lock | ||
| HALF_LOCKED2 | flags | ||
| HALF_LOCKED2 | 0 | &iocg->ioc->lock | |
| TYPE_LOCK | (struct ioc)->lock |