Lines Matching refs:hctx
26 bool __blk_mq_tag_busy(struct blk_mq_hw_ctx *hctx) in __blk_mq_tag_busy() argument
28 if (blk_mq_is_sbitmap_shared(hctx->flags)) { in __blk_mq_tag_busy()
29 struct request_queue *q = hctx->queue; in __blk_mq_tag_busy()
36 if (!test_bit(BLK_MQ_S_TAG_ACTIVE, &hctx->state) && in __blk_mq_tag_busy()
37 !test_and_set_bit(BLK_MQ_S_TAG_ACTIVE, &hctx->state)) in __blk_mq_tag_busy()
38 atomic_inc(&hctx->tags->active_queues); in __blk_mq_tag_busy()
58 void __blk_mq_tag_idle(struct blk_mq_hw_ctx *hctx) in __blk_mq_tag_idle() argument
60 struct blk_mq_tags *tags = hctx->tags; in __blk_mq_tag_idle()
61 struct request_queue *q = hctx->queue; in __blk_mq_tag_idle()
64 if (blk_mq_is_sbitmap_shared(hctx->flags)) { in __blk_mq_tag_idle()
70 if (!test_and_clear_bit(BLK_MQ_S_TAG_ACTIVE, &hctx->state)) in __blk_mq_tag_idle()
82 !hctx_may_queue(data->hctx, bt)) in __blk_mq_get_tag()
119 ws = bt_wait_ptr(bt, data->hctx); in blk_mq_get_tag()
128 blk_mq_run_hw_queue(data->hctx, false); in blk_mq_get_tag()
150 data->hctx = blk_mq_map_queue(data->q, data->cmd_flags, in blk_mq_get_tag()
166 ws = bt_wait_ptr(bt, data->hctx); in blk_mq_get_tag()
176 if (unlikely(test_bit(BLK_MQ_S_INACTIVE, &data->hctx->state))) { in blk_mq_get_tag()
198 struct blk_mq_hw_ctx *hctx; member
221 struct blk_mq_hw_ctx *hctx = iter_data->hctx; in bt_iter() local
222 struct blk_mq_tags *tags = hctx->tags; in bt_iter()
237 if (rq->q == hctx->queue && rq->mq_hctx == hctx) in bt_iter()
238 ret = iter_data->fn(hctx, rq, iter_data->data, reserved); in bt_iter()
257 static void bt_for_each(struct blk_mq_hw_ctx *hctx, struct sbitmap_queue *bt, in bt_for_each() argument
261 .hctx = hctx, in bt_for_each()
446 struct blk_mq_hw_ctx *hctx; in blk_mq_queue_tag_busy_iter() local
458 queue_for_each_hw_ctx(q, hctx, i) { in blk_mq_queue_tag_busy_iter()
459 struct blk_mq_tags *tags = hctx->tags; in blk_mq_queue_tag_busy_iter()
465 if (!blk_mq_hw_queue_mapped(hctx)) in blk_mq_queue_tag_busy_iter()
468 trace_android_vh_blk_mq_queue_tag_busy_iter(&skip, hctx, fn, in blk_mq_queue_tag_busy_iter()
474 bt_for_each(hctx, tags->breserved_tags, fn, priv, true); in blk_mq_queue_tag_busy_iter()
475 bt_for_each(hctx, tags->bitmap_tags, fn, priv, false); in blk_mq_queue_tag_busy_iter()
585 int blk_mq_tag_update_depth(struct blk_mq_hw_ctx *hctx, in blk_mq_tag_update_depth() argument
599 struct blk_mq_tag_set *set = hctx->queue->tag_set; in blk_mq_tag_update_depth()
615 new = blk_mq_alloc_rq_map(set, hctx->queue_num, tdepth, in blk_mq_tag_update_depth()
619 ret = blk_mq_alloc_rqs(set, new, hctx->queue_num, tdepth); in blk_mq_tag_update_depth()
625 blk_mq_free_rqs(set, *tagsptr, hctx->queue_num); in blk_mq_tag_update_depth()