Lines Matching +full:cpu +full:- +full:offset

1 // SPDX-License-Identifier: GPL-2.0
3 * CPU <-> hardware queue mapping helpers
5 * Copyright (C) 2013-2014 Jens Axboe
12 #include <linux/cpu.h>
17 #include "blk-mq.h"
22 unsigned int queue, cpu; in blk_mq_map_queues() local
24 masks = group_cpus_evenly(qmap->nr_queues); in blk_mq_map_queues()
26 for_each_possible_cpu(cpu) in blk_mq_map_queues()
27 qmap->mq_map[cpu] = qmap->queue_offset; in blk_mq_map_queues()
31 for (queue = 0; queue < qmap->nr_queues; queue++) { in blk_mq_map_queues()
32 for_each_cpu(cpu, &masks[queue]) in blk_mq_map_queues()
33 qmap->mq_map[cpu] = qmap->queue_offset + queue; in blk_mq_map_queues()
40 * blk_mq_hw_queue_to_node - Look up the memory node for a hardware queue index
41 * @qmap: CPU to hardware queue map.
52 if (index == qmap->mq_map[i]) in blk_mq_hw_queue_to_node()
60 * blk_mq_map_hw_queues - Create CPU to hardware queue mapping
61 * @qmap: CPU to hardware queue map
63 * @offset: Queue offset to use for the device
65 * Create a CPU to hardware queue mapping in @qmap. The struct bus_type
69 struct device *dev, unsigned int offset) in blk_mq_map_hw_queues() argument
73 unsigned int queue, cpu; in blk_mq_map_hw_queues() local
75 if (!dev->bus->irq_get_affinity) in blk_mq_map_hw_queues()
78 for (queue = 0; queue < qmap->nr_queues; queue++) { in blk_mq_map_hw_queues()
79 mask = dev->bus->irq_get_affinity(dev, queue + offset); in blk_mq_map_hw_queues()
83 for_each_cpu(cpu, mask) in blk_mq_map_hw_queues()
84 qmap->mq_map[cpu] = qmap->queue_offset + queue; in blk_mq_map_hw_queues()