These patches are modified
version of the
patches I sent about one month before. These patches
enable MSI support and limited MSI-X support in XEN.
The basic idea including:
1)
Keep vector global resource owned by xen, while split
pirq into per-domain information.
2) Domain0 kernel
will operate msi resource for domain0/domU, while QEMU will
operate MSI resource for HVM
domain.
3) MSI/MSI-X capabilities are
setup by Xen, Dom0 sees MSI as normal
PIRQ.
4) MSI interrupts are handled like
normal edge-triggered interrupts.
From my tests, I did not
encounter MSI storm.
Per
patch discription:
move_pci_function.patch
move some function and
header files to generic places that are needed by
MSI.
pirq_per_domain.patch
changes pirq to
per-domain
msi_irq_xen.patch
add MSI/MSI-X support to Xen.
Most code is ported from 2.6.24.4 kernel.
msix_permission.patch
remove io_mem permission for
MSI-X, since MSI-X facilities are allocted through and located in PCI
BAR.
msi_passthrough.patch
add MSI support to HVM
domain.
msi_kernel.patch
add MSI/MSI-X support for
PV domains including dom0.
What is your comments on the patches,
Keir?
Thanks!
Haitao Shan