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 majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html