Messages in this thread | | | Subject | Re: [patch 00/22] genirq/msi, PCI/MSI: Spring cleaning - Part 1 | From | Juergen Gross <> | Date | Sun, 28 Nov 2021 12:15:03 +0100 |
| |
On 27.11.21 02:18, Thomas Gleixner wrote: > The [PCI] MSI code has gained quite some warts over time. A recent > discussion unearthed a shortcoming: the lack of support for expanding > PCI/MSI-X vectors after initialization of MSI-X. > > PCI/MSI-X has no requirement to setup all vectors when MSI-X is enabled in > the device. The non-used vectors have just to be masked in the vector > table. For PCI/MSI this is not possible because the number of vectors > cannot be changed after initialization. > > The PCI/MSI code, but also the core MSI irq domain code are built around > the assumption that all required vectors are installed at initialization > time and freed when the device is shut down by the driver. > > Supporting dynamic expansion at least for MSI-X is important for VFIO so > that the host side interrupts for passthrough devices can be installed on > demand. > > This is the first part of a large (total 101 patches) series which > refactors the [PCI]MSI infrastructure to make runtime expansion of MSI-X > vectors possible. The last part (10 patches) provide this functionality. > > The first part is mostly a cleanup which consolidates code, moves the PCI > MSI code into a separate directory and splits it up into several parts. > > No functional change intended except for patch 2/N which changes the > behaviour of pci_get_vector()/affinity() to get rid of the assumption that > the provided index is the "index" into the descriptor list instead of using > it as the actual MSI[X] index as seen by the hardware. This would break > users of sparse allocated MSI-X entries, but non of them use these > functions. > > This series is based on 5.16-rc2 and also available via git: > > git://git.kernel.org/pub/scm/linux/kernel/git/tglx/devel.git msi-v1-part-1
Tested with Xen (PV dom0, PV guest, PVH guest, HVM guest).
You can add my:
Tested-by: Juergen Gross <jgross@suse.com>
Juergen [unhandled content-type:application/pgp-keys][unhandled content-type:application/pgp-signature] | |