Lines Matching refs:nr_hw_queues
640 if (hctx_idx >= q->nr_hw_queues)
1220 if (rq->q->nr_hw_queues == 1) {
2206 if (hctx->queue->nr_hw_queues == 1)
2279 * updating nr_hw_queues, or other things, and we can't run queue
3056 (hctx->dispatch_busy && (q->nr_hw_queues == 1 || !is_sync))) {
3789 unsigned int nr_hw_queues)
3812 if (nr_hw_queues > 1 && hctx->numa_node == NUMA_NO_NODE)
4230 for (i = 0; i < set->nr_hw_queues; i++) {
4250 * Increasing nr_hw_queues fails. Free the newly allocated
4251 * hctxs and keep the previous q->nr_hw_queues.
4253 if (i != set->nr_hw_queues) {
4254 j = q->nr_hw_queues;
4257 q->nr_hw_queues = set->nr_hw_queues;
4294 if (!q->nr_hw_queues)
4312 blk_mq_init_cpu_queues(q, set->nr_hw_queues);
4331 blk_mq_exit_hw_queues(q, set, set->nr_hw_queues);
4348 for (i = 0; i < set->nr_hw_queues; i++) {
4411 set->map[HCTX_TYPE_DEFAULT].nr_queues = set->nr_hw_queues;
4420 * for (queue = 0; queue < set->nr_hw_queues; queue++) {
4446 if (set->nr_hw_queues >= new_nr_hw_queues)
4455 memcpy(new_tags, set->tags, set->nr_hw_queues *
4460 for (i = set->nr_hw_queues; i < new_nr_hw_queues; i++) {
4462 while (--i >= set->nr_hw_queues)
4470 set->nr_hw_queues = new_nr_hw_queues;
4486 if (!set->nr_hw_queues)
4516 set->nr_hw_queues = 1;
4524 if (set->nr_maps == 1 && set->nr_hw_queues > nr_cpu_ids)
4525 set->nr_hw_queues = nr_cpu_ids;
4537 set->tags = kcalloc_node(set->nr_hw_queues,
4549 set->map[i].nr_queues = is_kdump_kernel() ? 1 : set->nr_hw_queues;
4587 set->nr_hw_queues = 1;
4600 for (i = 0; i < set->nr_hw_queues; i++)
4753 int nr_hw_queues)
4757 int prev_nr_hw_queues = set->nr_hw_queues;
4762 if (set->nr_maps == 1 && nr_hw_queues > nr_cpu_ids)
4763 nr_hw_queues = nr_cpu_ids;
4764 if (nr_hw_queues < 1)
4766 if (set->nr_maps == 1 && nr_hw_queues == set->nr_hw_queues)
4785 if (blk_mq_realloc_tag_set_tags(set, nr_hw_queues) < 0)
4793 if (q->nr_hw_queues != set->nr_hw_queues) {
4796 pr_warn("Increasing nr_hw_queues to %d fails, fallback to %d\n",
4797 nr_hw_queues, prev_nr_hw_queues);
4798 for (; i < set->nr_hw_queues; i++)
4801 set->nr_hw_queues = prev_nr_hw_queues;
4820 /* Free the excess tags when nr_hw_queues shrink. */
4821 for (i = set->nr_hw_queues; i < prev_nr_hw_queues; i++)
4825 void blk_mq_update_nr_hw_queues(struct blk_mq_tag_set *set, int nr_hw_queues)
4828 __blk_mq_update_nr_hw_queues(set, nr_hw_queues);