History | View | Annotate | Download (61.8 kB)
pci: update all users to look in pci/
update all users so we can remove the makefile hack.
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
vfio-pci: Add KVM INTx acceleration
This makes use of the new level irqfd support enabling bypass of qemuuserspace both on INTx injection and unmask. This significantlyboosts the performance of devices making use of legacy interrupts (ex.~60% better netperf TCP_RR scores for an e1000e assigned to a Linux...
vfio-pci: Use common msi_get_message
We can get rid of our local version now that a helper exists.
Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
Rename target_phys_addr_t to hwaddr
target_phys_addr_t is unwieldly, violates the C standard (_t suffixes arereserved) and its purpose doesn't match the name (most target_phys_addr_taddresses are not target specific). Replace it with a finger-friendly,...
Merge remote-tracking branch 'awilliam/tags/vfio-pci-for-qemu-20121017.0' into staging
memory: use AddressSpace for MemoryListener filtering
Using the AddressSpace type reduces confusion, as you can't accidentallysupply the MemoryRegion you're interested in.
Reviewed-by: Anthony Liguori <aliguori@us.ibm.com>Signed-off-by: Avi Kivity <avi@redhat.com>
vfio-pci: Mark non-migratable
We haven't magically fixed this yet. Toss in a description too.
vfio-pci: Fix debug build
Stray variable from before MSI-X rework
vfio: drop no-op MemoryListener callbacks
Removes quite a bit of useless code.
Signed-off-by: Avi Kivity <avi@redhat.com>
vfio-pci: Clang cleanup
Blue Swirl reports that Clang doesn't like the structure we define toavoid dynamic allocation for a number of calls to VFIO_DEVICE_SET_IRQS.Adding an element after a variable sized type is a GNU extension.Switch back to dynamic allocation, which really isn't a problem since...
vfio-pci: Fix BAR->VFIODevice translation in
DO_UPCAST is supposed to translate from the first member of a struct tothat struct, not from arbitrary ones. And it (usually) breaks the buildwhen neglecting this rule. Use container_of to fix the build breakage...
vfio-pci: Roll the header into the .c file
It's only ~100 lines and nobody else should be using this.Suggested by Michael Tsirkin.
vfio-pci: Don't peak at msi_supported
Let the init function fail, just don't warn for -ENOTSUP.
vfio-pci: Use uintptr_t for void* cast
We don't seem to run into any sign extension problems, butunsigned looks more correct.
Signed-off-by: Alex williamson <alex.williamson@redhat.com>
vfio-pci: Remove setting of MSI qsize
This was a misinterpretation of the spec, hardware doesn't get tospecify how many were actually enabled through this field.
vfio-pci: Extend reset
Take what we've learned from pci-assign and apply it to vfio-pci.On reset, disable previous interrupt config, perform a devicereset if available, re-enable INTx, and disable memory regions onthe device to prevent continuing DMA....
vfio-pci: Cleanup on INTx setup failure
Missing some unwind code.
vfio-pci: Update slow path INTx algorithm
We can't afford the overhead of switching out and back into mmap modearound each interrupt, but we can do it lazily via a timer. On INTxinterrupt, disable the mmap'd memory regions and set a timer. Onevery interrupt, push the timer out. If the timer expires and the...
vfio-pci: Re-order map/unmap
This cleans up the next patch that calls unmap from map.
vfio-pci: Unmap and retry DMA mapping
Occasionally we get regions added that overlap with existing mappings.These always seems to be in the VGA ROM range. VFIO returns EBUSYfor these mapping attempts. We can try a little harder and assumethat the latest mapping is correct by removing any overlapping ranges...
vfio-pci: Rework MSIX setup/teardown
We try to do lazy initialization of MSIX since we don't actually needto setup anything until MSIX vectors start getting used. This leadsto problems if MSIX is enabled, but never used (we can end up tryingto re-enable INTx while it's still enabled). We also run into...
vfio-pci: No spurious MSIs
FreeBSD doesn't like these spurious MSIs, remove them as they'remostly paranoia anyway.
vfio_pci: fix build on 32-bit systems
We cannot cast directly from pointer to uint64.
Cc: Alex Williamson <alex.williamson@redhat.com>Cc: Alex Barcelo <abarcelo@ac.upc.edu>Reported-by: Alex Barcelo <abarcelo@ac.upc.edu>Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
vfio: vfio-pci device assignment driver
This adds the core of the QEMU VFIO-based PCI device assignment driver.To make use of this driver, enable CONFIG_VFIO, CONFIG_VFIO_IOMMU_TYPE1,and CONFIG_VFIO_PCI in your host Linux kernel config. Load the vfio-pci...