This is a note to let you know that I've just added the patch titled blk-mq: Include all present CPUs in the default queue mapping to the 4.12-stable tree which can be found at: http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary The filename of the patch is: blk-mq-include-all-present-cpus-in-the-default-queue-mapping.patch and it can be found in the queue-4.12 subdirectory. If you, or anyone else, feels it should not be added to the stable tree, please let <stable@xxxxxxxxxxxxxxx> know about it. >From 5f042e7cbd9ebd3580077dcdc21f35e68c2adf5f Mon Sep 17 00:00:00 2001 From: Christoph Hellwig <hch@xxxxxx> Date: Mon, 26 Jun 2017 12:20:56 +0200 Subject: blk-mq: Include all present CPUs in the default queue mapping From: Christoph Hellwig <hch@xxxxxx> commit 5f042e7cbd9ebd3580077dcdc21f35e68c2adf5f upstream. This way we get a nice distribution independent of the current cpu online / offline state. Signed-off-by: Christoph Hellwig <hch@xxxxxx> Reviewed-by: Jens Axboe <axboe@xxxxxxxxx> Cc: Keith Busch <keith.busch@xxxxxxxxx> Cc: linux-block@xxxxxxxxxxxxxxx Cc: linux-nvme@xxxxxxxxxxxxxxxxxxx Link: http://lkml.kernel.org/r/20170626102058.10200-2-hch@xxxxxx Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx> Cc: Oleksandr Natalenko <oleksandr@xxxxxxxxxxxxxx> Cc: Mike Galbraith <efault@xxxxxx> Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> --- block/blk-mq-cpumap.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) --- a/block/blk-mq-cpumap.c +++ b/block/blk-mq-cpumap.c @@ -35,7 +35,6 @@ int blk_mq_map_queues(struct blk_mq_tag_ { unsigned int *map = set->mq_map; unsigned int nr_queues = set->nr_hw_queues; - const struct cpumask *online_mask = cpu_online_mask; unsigned int i, nr_cpus, nr_uniq_cpus, queue, first_sibling; cpumask_var_t cpus; @@ -44,7 +43,7 @@ int blk_mq_map_queues(struct blk_mq_tag_ cpumask_clear(cpus); nr_cpus = nr_uniq_cpus = 0; - for_each_cpu(i, online_mask) { + for_each_present_cpu(i) { nr_cpus++; first_sibling = get_first_sibling(i); if (!cpumask_test_cpu(first_sibling, cpus)) @@ -54,7 +53,7 @@ int blk_mq_map_queues(struct blk_mq_tag_ queue = 0; for_each_possible_cpu(i) { - if (!cpumask_test_cpu(i, online_mask)) { + if (!cpumask_test_cpu(i, cpu_present_mask)) { map[i] = 0; continue; } Patches currently in stable-queue which might be from hch@xxxxxx are queue-4.12/block-disable-runtime-pm-for-blk-mq.patch queue-4.12/blk-mq-create-hctx-for-each-present-cpu.patch queue-4.12/blk-mq-include-all-present-cpus-in-the-default-queue-mapping.patch