]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
4.9-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 8 Aug 2017 17:46:06 +0000 (10:46 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 8 Aug 2017 17:46:06 +0000 (10:46 -0700)
added patches:
blk-mq-include-all-present-cpus-in-the-default-queue-mapping.patch

queue-4.9/blk-mq-include-all-present-cpus-in-the-default-queue-mapping.patch [new file with mode: 0644]
queue-4.9/series

diff --git a/queue-4.9/blk-mq-include-all-present-cpus-in-the-default-queue-mapping.patch b/queue-4.9/blk-mq-include-all-present-cpus-in-the-default-queue-mapping.patch
new file mode 100644 (file)
index 0000000..b4ec8e1
--- /dev/null
@@ -0,0 +1,55 @@
+From 5f042e7cbd9ebd3580077dcdc21f35e68c2adf5f Mon Sep 17 00:00:00 2001
+From: Christoph Hellwig <hch@lst.de>
+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@lst.de>
+
+commit 5f042e7cbd9ebd3580077dcdc21f35e68c2adf5f upstream.
+
+This way we get a nice distribution independent of the current cpu
+online / offline state.
+
+Signed-off-by: Christoph Hellwig <hch@lst.de>
+Reviewed-by: Jens Axboe <axboe@kernel.dk>
+Cc: Keith Busch <keith.busch@intel.com>
+Cc: linux-block@vger.kernel.org
+Cc: linux-nvme@lists.infradead.org
+Link: http://lkml.kernel.org/r/20170626102058.10200-2-hch@lst.de
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+Cc: Oleksandr Natalenko <oleksandr@natalenko.name>
+Cc: Mike Galbraith <efault@gmx.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ 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;
+               }
index a573416ff32ed07d8a54d31a8f4d19140f186b01..2b48969115f61a60203dd7de61904d90f2cece80 100644 (file)
@@ -32,3 +32,4 @@ mmc-core-use-device_property_read-instead-of-of_property_read.patch
 media-lirc-lirc_get_rec_resolution-should-return-microseconds.patch
 f2fs-sanity-check-checkpoint-segno-and-blkoff.patch
 btrfs-fix-early-enospc-due-to-delalloc.patch
+blk-mq-include-all-present-cpus-in-the-default-queue-mapping.patch