With this series, we are getting very close to obsoleting qemu-kvm. It refactors hw/device-assignment.c and the associated KVM helper functions into a form that should allow merging them into QEMU. Once the series is acceptable for qemu-kvm, I will break out the necessary uq/master patches and push pci-assign to upstream.
The major step of this series is to define a regular set of kvm_device_* services that encapsulate classic (i.e. KVM-based, non-VFIO) device assignment features and export them to i386 targets only. There will never be another arch using them, therefore I pushed them into this corner. Moreover, the device assignment device now makes use of the new KVM IRQ/MSI routing API and no longer pokes into the internals of that layer. Finally, I moved the code into hw/kvm/pci-assign.c, dropped the superfluous configure option and did some basic code cleanups (mostly coding style) to bring things in shape. Note that patch 1 is a simple bug fix that should likely be applied for qemu-kvm-1.2 independently. Changes in v2: - rebased over qemu-kvm next - consistently clear unused IOCTL fields via structure initialization Jan Kiszka (20): pci-assign: Only clean up registered IO resources pci-assign: Factor out kvm_device_pci_assign/deassign pci-assign: Rename assign_irq to assign_intx pci-assign: Refactor interrupt deassignment pci-assign: Factor out kvm_device_intx_assign qemu-kvm: Move kvm_device_intx_set_mask service qemu-kvm: Clear unused IOCTL fields in kvm_device_intx_set_mask pci-assign: Rework MSI assignment pci-assign: Factor out kvm_device_msix_supported pci-assign: Replace kvm_assign_set_msix_nr with kvm_device_msix_init_vectors pci-assign: Replace kvm_assign_set_msix_entry with kvm_device_msix_set_vector pci-assign: Rework MSI-X route setup pci-assign: Factor out kvm_device_msix_assign qemu-kvm: Kill qemu-kvm.[ch] pci-assign: Drop configure switches pci-assign: Move and rename source file pci-assign: Fix coding style issues pci-assign: Replace exit() with hw_error() pci-assign: Drop unused or write-only variables pci-assign: Gracefully handle missing in-kernel irqchip support configure | 11 - hw/i386/Makefile.objs | 3 - hw/kvm/Makefile.objs | 2 +- hw/{device-assignment.c => kvm/pci-assign.c} | 502 +++++++++++++------------- kvm-all.c | 54 +++- kvm-stub.c | 9 - kvm.h | 12 +- qemu-kvm.c | 233 ------------ qemu-kvm.h | 112 ------ target-i386/kvm.c | 141 +++++++ target-i386/kvm_i386.h | 22 ++ 11 files changed, 460 insertions(+), 641 deletions(-) rename hw/{device-assignment.c => kvm/pci-assign.c} (84%) delete mode 100644 qemu-kvm.c delete mode 100644 qemu-kvm.h -- 1.7.3.4 -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html