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