virtio: allow drivers to request IRQ affinity when creating VQs
Add a struct irq_affinity pointer to the find_vqs methods, which if set is used to tell the PCI layer to create the MSI-X vectors for our I/O virtqueues with the proper affinity from the start. Compared to after the fact affinity hints this gives us an instantly working setup and allows to allocate the irq descritors node-local and avoid interconnect traffic. Last but not least this will allow blk-mq queues are created based on the interrupt affinity for storage drivers. Signed-off-by:Christoph Hellwig <hch@lst.de> Reviewed-by:
Jason Wang <jasowang@redhat.com> Signed-off-by:
Michael S. Tsirkin <mst@redhat.com>
Showing
- drivers/block/virtio_blk.c 2 additions, 1 deletiondrivers/block/virtio_blk.c
- drivers/char/virtio_console.c 1 addition, 1 deletiondrivers/char/virtio_console.c
- drivers/crypto/virtio/virtio_crypto_core.c 1 addition, 1 deletiondrivers/crypto/virtio/virtio_crypto_core.c
- drivers/gpu/drm/virtio/virtgpu_kms.c 1 addition, 1 deletiondrivers/gpu/drm/virtio/virtgpu_kms.c
- drivers/misc/mic/vop/vop_main.c 1 addition, 1 deletiondrivers/misc/mic/vop/vop_main.c
- drivers/net/caif/caif_virtio.c 2 additions, 1 deletiondrivers/net/caif/caif_virtio.c
- drivers/net/virtio_net.c 1 addition, 1 deletiondrivers/net/virtio_net.c
- drivers/remoteproc/remoteproc_virtio.c 2 additions, 1 deletiondrivers/remoteproc/remoteproc_virtio.c
- drivers/rpmsg/virtio_rpmsg_bus.c 1 addition, 1 deletiondrivers/rpmsg/virtio_rpmsg_bus.c
- drivers/s390/virtio/kvm_virtio.c 2 additions, 1 deletiondrivers/s390/virtio/kvm_virtio.c
- drivers/s390/virtio/virtio_ccw.c 2 additions, 1 deletiondrivers/s390/virtio/virtio_ccw.c
- drivers/scsi/virtio_scsi.c 2 additions, 1 deletiondrivers/scsi/virtio_scsi.c
- drivers/virtio/virtio_balloon.c 2 additions, 1 deletiondrivers/virtio/virtio_balloon.c
- drivers/virtio/virtio_input.c 2 additions, 1 deletiondrivers/virtio/virtio_input.c
- drivers/virtio/virtio_mmio.c 2 additions, 1 deletiondrivers/virtio/virtio_mmio.c
- drivers/virtio/virtio_pci_common.c 12 additions, 7 deletionsdrivers/virtio/virtio_pci_common.c
- drivers/virtio/virtio_pci_common.h 2 additions, 3 deletionsdrivers/virtio/virtio_pci_common.h
- drivers/virtio/virtio_pci_modern.c 3 additions, 4 deletionsdrivers/virtio/virtio_pci_modern.c
- include/linux/virtio_config.h 5 additions, 4 deletionsinclude/linux/virtio_config.h
- net/vmw_vsock/virtio_transport.c 2 additions, 1 deletionnet/vmw_vsock/virtio_transport.c
Please register or sign in to comment