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 [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html