Hello, This is the v2 of the QEMU/KVM patchset taking into account the remarks on the interface with Linux/KVM.
The first patches introduce the XIVE KVM device, state synchronization and migration support under KVM. The second part of the patchset modifies the XICS and XIVE interrupt models to add KVM support to the 'dual' IRQ backend. GitHub trees available here : QEMU sPAPR: https://github.com/legoater/qemu/commits/xive-next Linux/KVM: https://github.com/legoater/linux/commits/xive-5.0 OPAL: https://github.com/legoater/skiboot/commits/xive Thanks, C. Change since v1: - Reworked most of the KVM interface - Reworked *All* hcalls which are now handled at the QEMU level, possibly extended with a KVM device ioctl when required. - TIMA and ESB special mapping done on the KVM device fd. - Tested on nested - Implemented the device fallback mode when a kernel_irqchip is not available and not required. Useful on nested to use XIVE. - Fix device hotplug when VM is stopped (Is this necessary ?) Cédric Le Goater (13): spapr/xive: add KVM support spapr/xive: add hcall support when under KVM spapr/xive: activate KVM support spapr/xive: add state synchronization with KVM spapr/xive: introduce a VM state change handler spapr/xive: add migration support for KVM spapr/xive: fix migration of the XiveTCTX under TCG spapr/rtas: modify spapr_rtas_register() to remove RTAS handlers sysbus: add a sysbus_mmio_unmap() helper spapr: introduce routines to delete the KVM IRQ device spapr: check for the activation of the KVM IRQ device spapr: add KVM support to the 'dual' machine spapr/xive: fix device hotplug when VM is stopped default-configs/ppc64-softmmu.mak | 1 + include/hw/ppc/spapr.h | 4 + include/hw/ppc/spapr_xive.h | 39 ++ include/hw/ppc/xics_spapr.h | 1 + include/hw/ppc/xive.h | 15 + include/hw/sysbus.h | 1 + target/ppc/kvm_ppc.h | 6 + hw/core/sysbus.c | 10 + hw/intc/spapr_xive.c | 193 ++++++- hw/intc/spapr_xive_kvm.c | 807 ++++++++++++++++++++++++++++++ hw/intc/xics_kvm.c | 108 +++- hw/intc/xive.c | 44 +- hw/ppc/spapr_irq.c | 136 +++-- hw/ppc/spapr_rtas.c | 2 +- target/ppc/kvm.c | 7 + hw/intc/Makefile.objs | 1 + 16 files changed, 1315 insertions(+), 60 deletions(-) create mode 100644 hw/intc/spapr_xive_kvm.c -- 2.20.1