mbox series

[v2,00/19] util/vfio-helpers: Allow using multiple MSIX IRQs

Message ID 20201026105504.4023620-1-philmd@redhat.com (mailing list archive)
Headers show
Series util/vfio-helpers: Allow using multiple MSIX IRQs | expand

Message

Philippe Mathieu-Daudé Oct. 26, 2020, 10:54 a.m. UTC
This series allow using multiple MSIX IRQs
We currently share a single IRQ between 2 NVMe queues
(ADMIN and I/O). This series still uses 1 shared IRQ
but prepare for using multiple ones.

Since v1:
- Addressed Stefan comment in patch #14
  "Pass minimum page size to qemu_vfio_open_pci"
  (check the page size is in range with device)
- To reduce (and simplify) changes in patch #14, added
  new patch #2 "Introduce device/iommu 'page_size_min' variables"
- Added "Trace controller capabilities" useful to test the
  previous changes
- "Set request_alignment at initialization" reported by Stefan
  (and tested by Eric off-list).

Missing review: 2,3,4,14

$ git backport-diff -u v1
Key:
[----] : patches are identical
[####] : number of functional differences between upstream/downstream patch
[down] : patch is downstream-only
The flags [FC] indicate (F)unctional and (C)ontextual differences, respective=
ly

001/19:[----] [--] 'block/nvme: Correct minimum device page size'
002/19:[down] 'block/nvme: Set request_alignment at initialization'
003/19:[down] 'block/nvme: Introduce device/iommu 'page_size_min' variables'
004/19:[down] 'block/nvme: Trace controller capabilities'
005/19:[----] [--] 'util/vfio-helpers: Improve reporting unsupported IOMMU ty=
pe'
006/19:[----] [-C] 'util/vfio-helpers: Trace PCI I/O config accesses'
007/19:[----] [-C] 'util/vfio-helpers: Trace PCI BAR region info'
008/19:[----] [-C] 'util/vfio-helpers: Trace where BARs are mapped'
009/19:[----] [-C] 'util/vfio-helpers: Improve DMA trace events'
010/19:[----] [-C] 'util/vfio-helpers: Convert vfio_dump_mapping to trace eve=
nts'
011/19:[----] [-C] 'util/vfio-helpers: Let qemu_vfio_dma_map() propagate Erro=
r'
012/19:[----] [--] 'util/vfio-helpers: Let qemu_vfio_do_mapping() propagate E=
rror'
013/19:[----] [--] 'util/vfio-helpers: Let qemu_vfio_verify_mappings() use er=
ror_report()'
014/19:[0017] [FC] 'util/vfio-helpers: Pass minimum page size to qemu_vfio_op=
en_pci()'
015/19:[----] [-C] 'util/vfio-helpers: Report error when IOMMU page size is n=
ot supported'
016/19:[----] [--] 'util/vfio-helpers: Introduce qemu_vfio_pci_msix_init_irqs=
()'
017/19:[----] [--] 'util/vfio-helpers: Introduce qemu_vfio_pci_msix_set_irq()'
018/19:[----] [-C] 'block/nvme: Switch to using the MSIX API'
019/19:[----] [--] 'util/vfio-helpers: Remove now unused qemu_vfio_pci_init_i=
rq()'

Philippe Mathieu-Daud=C3=A9 (19):
  block/nvme: Correct minimum device page size
  block/nvme: Set request_alignment at initialization
  block/nvme: Introduce device/iommu 'page_size_min' variables
  block/nvme: Trace controller capabilities
  util/vfio-helpers: Improve reporting unsupported IOMMU type
  util/vfio-helpers: Trace PCI I/O config accesses
  util/vfio-helpers: Trace PCI BAR region info
  util/vfio-helpers: Trace where BARs are mapped
  util/vfio-helpers: Improve DMA trace events
  util/vfio-helpers: Convert vfio_dump_mapping to trace events
  util/vfio-helpers: Let qemu_vfio_dma_map() propagate Error
  util/vfio-helpers: Let qemu_vfio_do_mapping() propagate Error
  util/vfio-helpers: Let qemu_vfio_verify_mappings() use error_report()
  util/vfio-helpers: Pass minimum page size to qemu_vfio_open_pci()
  util/vfio-helpers: Report error when IOMMU page size is not supported
  util/vfio-helpers: Introduce qemu_vfio_pci_msix_init_irqs()
  util/vfio-helpers: Introduce qemu_vfio_pci_msix_set_irq()
  block/nvme: Switch to using the MSIX API
  util/vfio-helpers: Remove now unused qemu_vfio_pci_init_irq()

 include/qemu/vfio-helpers.h |  15 ++-
 block/nvme.c                |  58 +++++++++---
 util/vfio-helpers.c         | 183 +++++++++++++++++++++++++++---------
 block/trace-events          |   1 +
 util/trace-events           |  13 ++-
 5 files changed, 208 insertions(+), 62 deletions(-)

--=20
2.26.2

Comments

Stefan Hajnoczi Oct. 27, 2020, 9:55 a.m. UTC | #1
On Mon, Oct 26, 2020 at 11:54:45AM +0100, Philippe Mathieu-Daudé wrote:
> This series allow using multiple MSIX IRQs
> We currently share a single IRQ between 2 NVMe queues
> (ADMIN and I/O). This series still uses 1 shared IRQ
> but prepare for using multiple ones.
> 
> Since v1:
> - Addressed Stefan comment in patch #14
>   "Pass minimum page size to qemu_vfio_open_pci"
>   (check the page size is in range with device)
> - To reduce (and simplify) changes in patch #14, added
>   new patch #2 "Introduce device/iommu 'page_size_min' variables"
> - Added "Trace controller capabilities" useful to test the
>   previous changes
> - "Set request_alignment at initialization" reported by Stefan
>   (and tested by Eric off-list).

The MSI-X patches look good.

I'm confused about the page size patches since they don't solve the 4KB
device page size on 64KB IOMMU page size issue that you and Eric were
working on. I would prefer to hold off on page size changes until that
work is complete.

Stefan