Hi Linus, This is the block-irq topic branch for 4.9-rc. It's mostly from Christoph, and it allows drivers to specify their own mappings, and more importantly, to share the blk-mq mappings with the IRQ affinity mappings. It's a good step towards making this work better out of the box. This will throw a few merge conflicts with later patches in the main branch that you already pulled. I kept this a private branch due to the pci dependencies. I have attached the diff of how I resolved it, just in case. Please pull! git://git.kernel.dk/linux-block.git for-4.9/block-irq ---------------------------------------------------------------- Christoph Hellwig (8): blk-mq: don't redistribute hardware queues on a CPU hotplug event blk-mq: only allocate a single mq_map per tag_set blk-mq: remove ->map_queue blk-mq: allow the driver to pass in a queue mapping blk-mq: provide a default queue mapping for PCI device nvme: switch to use pci_alloc_irq_vectors nvme: remove the post_scan callout blk-mq: get rid of the cpumask in struct blk_mq_tags Jens Axboe (2): Merge branch 'irq/for-block' of git://git.kernel.org/.../tip/tip into for-4.9/msi-irq blk-mq: kill unused blk_mq_create_mq_map() Stephen Rothwell (1): blk_mq: linux/blk-mq.h does not include all the headers it depends on Documentation/block/biodoc.txt | 4 +- block/Kconfig | 5 + block/Makefile | 2 +- block/bio.c | 2 +- block/blk-core.c | 16 +- block/blk-flush.c | 6 +- block/blk-mq-cpumap.c | 25 +-- block/blk-mq-pci.c | 47 +++++ block/blk-mq-sysfs.c | 15 +- block/blk-mq-tag.c | 11 +- block/blk-mq-tag.h | 1 - block/blk-mq.c | 117 +++++------ block/blk-mq.h | 10 +- block/blk.h | 11 +- drivers/block/loop.c | 1 - drivers/block/mtip32xx/mtip32xx.c | 3 +- drivers/block/nbd.c | 411 +++++++++++++++----------------------- drivers/block/null_blk.c | 1 - drivers/block/rbd.c | 1 - drivers/block/virtio_blk.c | 1 - drivers/block/xen-blkfront.c | 1 - drivers/md/dm-crypt.c | 2 +- drivers/md/dm-rq.c | 1 - drivers/mtd/ubi/block.c | 1 - drivers/nvme/host/core.c | 3 - drivers/nvme/host/nvme.h | 1 - drivers/nvme/host/pci.c | 109 ++++------ drivers/nvme/host/rdma.c | 2 - drivers/nvme/target/loop.c | 2 - drivers/scsi/scsi_lib.c | 1 - fs/befs/linuxvfs.c | 2 +- fs/block_dev.c | 11 +- fs/btrfs/inode.c | 5 +- include/linux/bio.h | 2 - include/linux/blk-mq-pci.h | 9 + include/linux/blk-mq.h | 26 ++- include/linux/blk_types.h | 21 +- include/linux/blkdev.h | 4 +- include/linux/ioprio.h | 1 - include/linux/workqueue.h | 1 + kernel/workqueue.c | 40 ++-- 41 files changed, 429 insertions(+), 506 deletions(-) create mode 100644 block/blk-mq-pci.c create mode 100644 include/linux/blk-mq-pci.h -- Jens Axboe