ACK: [Bionic][PATCH v3 00/21] blk-mq scheduler fixes
Kleber Souza
kleber.souza at canonical.com
Thu Jun 7 21:15:34 UTC 2018
On 05/15/18 06:03, Jose Ricardo Ziviani wrote:
> From: Jose Ricardo Ziviani <joserz at linux.ibm.com>
>
> Hello team!
>
> Weeks ago I sent a patchset with:
> * genirq/affinity: Spread irq vectors among present CPUs as far as possible
> * blk-mq: simplify queue mapping & schedule with each possisble CPU
>
> Unfortunately they broke some cases, in particular the hpsa driver, so they
> had to be reverted. However, the bugs in blk_mq are leading to a very
> unstable KVM/Qemu virtual machines whenever CPU hotplug/unplug and SMT
> changes are performed, also impacting live migration.
>
> So, this is a new attempt to have the patches included. This new version
> includes all related fixes available upstream.
>
> It's based on Ubuntu-4.15.0-21.22 tag.
>
> V3:
> - Added Buglink line in each commit
>
> V2:
> - Included all the fix necessary to blk_mq
>
> Thank you!
>
> Jose Ricardo Ziviani
>
> Bart Van Assche (1):
> blk-mq: Avoid that blk_mq_delay_run_hw_queue() introduces unintended
> delays
>
> Christoph Hellwig (2):
> genirq/affinity: assign vectors to all possible CPUs
> blk-mq: simplify queue mapping & schedule with each possisble CPU
>
> Jens Axboe (1):
> blk-mq: fix discard merge with scheduler attached
>
> Ming Lei (16):
> genirq/affinity: Rename *node_to_possible_cpumask as *node_to_cpumask
> genirq/affinity: Move actual irq vector spreading into a helper
> function
> genirq/affinity: Allow irq spreading from a given starting point
> genirq/affinity: Spread irq vectors among present CPUs as far as
> possible
> blk-mq: make sure hctx->next_cpu is set correctly
> blk-mq: make sure that correct hctx->next_cpu is set
> blk-mq: don't keep offline CPUs mapped to hctx 0
> blk-mq: avoid to write intermediate result to hctx->next_cpu
> blk-mq: introduce blk_mq_hw_queue_first_cpu() to figure out first cpu
> blk-mq: don't check queue mapped in __blk_mq_delay_run_hw_queue()
> nvme: pci: pass max vectors as num_possible_cpus() to
> pci_alloc_irq_vectors
> scsi: hpsa: fix selection of reply queue
> scsi: megaraid_sas: fix selection of reply queue
> scsi: core: introduce force_blk_mq
> scsi: virtio_scsi: fix IO hang caused by automatic irq vector affinity
> scsi: virtio_scsi: unify scsi_host_template
>
> Thomas Gleixner (1):
> genirq/affinity: Don't return with empty affinity masks on error
>
> block/blk-core.c | 2 +
> block/blk-merge.c | 29 +++-
> block/blk-mq-cpumap.c | 5 -
> block/blk-mq.c | 65 +++++---
> drivers/nvme/host/pci.c | 2 +-
> drivers/scsi/hosts.c | 1 +
> drivers/scsi/hpsa.c | 73 ++++++---
> drivers/scsi/hpsa.h | 1 +
> drivers/scsi/megaraid/megaraid_sas.h | 1 +
> drivers/scsi/megaraid/megaraid_sas_base.c | 39 ++++-
> drivers/scsi/megaraid/megaraid_sas_fusion.c | 12 +-
> drivers/scsi/virtio_scsi.c | 129 ++-------------
> include/scsi/scsi_host.h | 3 +
> kernel/irq/affinity.c | 166 +++++++++++++-------
> 14 files changed, 296 insertions(+), 232 deletions(-)
>
The changes don't seem as intrusive as I first thought, they don't
introduce so many new features and are in majority follow-up fixes. As
Stefan mentioned, the patch set seems to be carrying all the fixes sent
upstream so far.
Acked-by: Kleber Sacilotto de Souza <kleber.souza at canonical.com>
More information about the kernel-team
mailing list