Patch 1 & 2 here are independent of the rest, but I include them
here to avoid conflicts. The first patch enables exposing MMIO
BARs as their native width to the guest. I added a config option
for this with the default to use the existing behavior as I
suspect we may have some latent issues there. Patch 2 is just
some trivial debug build warning fixes.
The rest of the patches work on improving MSI-X table support.
Particularly, vectors can now be updated by the guest after
MSI-X is enabled to support things like irqbalance for SMP
affinity tuning. We also now update MSI-X configuration as
new vectors are unmasked, which enables assignment of MSI-X
devices on FreeBSD. I was able to assign and use an 82576
(PF & VF) on a FreeBSD 9.0 guest with this series. Hopefully
Shashidhar can report whether this improves the behavior he
as seeing with an 82599.
I wasn't able to get masking to work reliably, so I left that
as is for now. Perhaps someone has suggestions on getting that
to work. Thanks,
Alex
---
Alex Williamson (9):
pci-assign: Update MSI-X config based on table writes
pci-assign: Use MSIX_PAGE_SIZE
pci-assign: Allocate entries for all MSI-X vectors
pci-assign: Proper initialization for MSI-X table
pci-assign: Only calculate maximum MSI-X vector entries once
pci-assign: Use struct for MSI-X table
pci-assign: Update MSI-X MMIO to Memory API
pci-assign: Fix warnings with DEBUG enabled
pci-assign: Optionally enable 64bit BARs in guest
hw/device-assignment.c | 272 ++++++++++++++++++++++++++++++------------------
hw/device-assignment.h | 12 ++
2 files changed, 179 insertions(+), 105 deletions(-)
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html