Hello, Following the 'dual' IRQ backend, this series adds KVM support to the XIVE interrupt mode.
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. This is a first round to check that the interfaces with Linux/KVM are well in place. 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. Cédric Le Goater (13): linux-headers: update to 5.0 spapr/xive: add 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 ppc/xics: introduce a icp_kvm_connect() routine 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/xics: ignore the lower 4K in the IRQ number space spapr: add KVM support to the 'dual' machine default-configs/ppc64-softmmu.mak | 1 + include/hw/ppc/spapr.h | 4 + include/hw/ppc/spapr_xive.h | 26 + include/hw/ppc/xics.h | 1 + include/hw/ppc/xive.h | 24 + include/hw/sysbus.h | 1 + linux-headers/asm-powerpc/kvm.h | 46 ++ linux-headers/linux/kvm.h | 9 + target/ppc/kvm_ppc.h | 6 + hw/core/sysbus.c | 10 + hw/intc/spapr_xive.c | 83 ++- hw/intc/spapr_xive_kvm.c | 886 ++++++++++++++++++++++++++++++ hw/intc/xics_kvm.c | 154 +++++- hw/intc/xive.c | 45 +- hw/ppc/spapr_irq.c | 114 +++- hw/ppc/spapr_rtas.c | 2 +- target/ppc/kvm.c | 7 + hw/intc/Makefile.objs | 1 + 18 files changed, 1363 insertions(+), 57 deletions(-) create mode 100644 hw/intc/spapr_xive_kvm.c -- 2.20.1