[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-ppc] [PATCH v3 00/15] spapr: add KVM support to the XIVE interrupt
From: |
Cédric Le Goater |
Subject: |
[Qemu-ppc] [PATCH v3 00/15] spapr: add KVM support to the XIVE interrupt mode |
Date: |
Thu, 21 Mar 2019 15:48:59 +0100 |
ello,
This is the v3 of the QEMU/KVM patchset taking into account the
remarks on v2 and the remarks on the Linux/KVM interface.
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.1
OPAL:
https://github.com/legoater/skiboot/commits/xive
Thanks,
C.
Changes since v2:
- update linux headers to 5.1-rc1
- rebased on new naming scheme
- rebased on new configuration system
- replaced error_report_err() by warn_report_err()
- added an assert() in spapr_xive_end_to_target()
- moved xive_end_is_valid() check out of kvmppc_xive_set_queue_config()
- dealt with MASKED EAS
- reworked ESB memory operations
- improved KVM_XIVE_EQ_ALWAYS_NOTIFY handling
- removed the capture of the OS CAM line value from KVM
- merged in the handling of pending interrupts while the VM is stopped.
- did an update in ics_set_kvm_state_one()
- removed spapr_ics_create()
- introduced a spapr_irq_init_device() helper
- reworked test on single initialization of the emulated IRQ device
Changes 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 (15):
linux-headers: update to 5.1-rc1
spapr/xive: add KVM support
spapr/xive: add hcall support when under KVM
spapr/xive: add state synchronization with KVM
spapr/xive: introduce a VM state change handler
spapr/xive: add migration support for KVM
spapr/xive: activate KVM support
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/irq: remove spapr_ics_create()
spapr/irq: introduce a spapr_irq_init_device()
spapr/irq: initialize the IRQ device only once
spapr/irq: add KVM support to the 'dual' machine
include/hw/ppc/spapr.h | 4 +
include/hw/ppc/spapr_irq.h | 2 +
include/hw/ppc/spapr_xive.h | 39 ++
include/hw/ppc/xics_spapr.h | 1 +
include/hw/ppc/xive.h | 14 +
include/hw/sysbus.h | 1 +
linux-headers/asm-powerpc/kvm.h | 46 ++
linux-headers/linux/kvm.h | 11 +
target/ppc/kvm_ppc.h | 6 +
hw/core/sysbus.c | 10 +
hw/intc/spapr_xive.c | 172 ++++++-
hw/intc/spapr_xive_kvm.c | 824 ++++++++++++++++++++++++++++++++
hw/intc/xics_kvm.c | 113 ++++-
hw/intc/xics_spapr.c | 10 +
hw/intc/xive.c | 44 +-
hw/ppc/spapr_irq.c | 181 ++++---
hw/ppc/spapr_rtas.c | 2 +-
target/ppc/kvm.c | 7 +
hw/intc/Makefile.objs | 1 +
hw/ppc/Kconfig | 5 +
20 files changed, 1404 insertions(+), 89 deletions(-)
create mode 100644 hw/intc/spapr_xive_kvm.c
--
2.20.1
- [Qemu-ppc] [PATCH v3 00/15] spapr: add KVM support to the XIVE interrupt mode,
Cédric Le Goater <=