[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v4 00/19] spapr: IRQ subsystem cleanup
From: |
David Gibson |
Subject: |
[PATCH v4 00/19] spapr: IRQ subsystem cleanup |
Date: |
Wed, 9 Oct 2019 17:07:59 +1100 |
This is a substantial rework to clean up the handling of IRQs in
spapr. It includes some cleanups to both the XICS and XIVE interrupt
controller backends, as well as more to the common spapr irq handling
infrastructure.
The last two patches of this series, dealing with VFIO devices, are
RFC only - there some problems that I'm discussing with Alex
Williamson.
Changes since v3:
* Further minor tweaks to error handling
* Other minor polishes from feedback
* Added some patches to address VFIO irq routing
* Removed the first ~20 patches, which are now merged
Changes since v2:
* Fixed a bug where the "move handling multiple irq frees" to
frontend patch was actually freeing one irq over and over, rather
than freeing multiple irqs
* Fixed some places I missed still using only-Error * style, and flow
on adjustments
* New idiom to iterate across all constructed backends for the things
that need that (cpu_intc_create, claim & freem), rather than
open-coding a call on the xics, then xive versions.
Changes since v1:
* Lots of extra patches
* Many minor adjustments based on feedback
* Moved towards return value + Error * style, instead of just Error *
style
David Gibson (16):
spapr, xics, xive: Introduce SpaprInterruptController QOM interface
spapr, xics, xive: Move cpu_intc_create from SpaprIrq to
SpaprInterruptController
spapr, xics, xive: Move irq claim and free from SpaprIrq to
SpaprInterruptController
spapr: Formalize notion of active interrupt controller
spapr, xics, xive: Move set_irq from SpaprIrq to
SpaprInterruptController
spapr, xics, xive: Move print_info from SpaprIrq to
SpaprInterruptController
spapr, xics, xive: Move dt_populate from SpaprIrq to
SpaprInterruptController
spapr, xics, xive: Match signatures for XICS and XIVE KVM connect
routines
spapr: Remove SpaprIrq::init_kvm hook
spapr, xics, xive: Move SpaprIrq::reset hook logic into
activate/deactivate
spapr, xics, xive: Move SpaprIrq::post_load hook to backends
spapr: Remove SpaprIrq::nr_msis
spapr: Move SpaprIrq::nr_xirqs to SpaprMachineClass
spapr: Remove last pieces of SpaprIrq
spapr: Handle irq backend changes with VFIO PCI devices
spapr: Work around spurious warnings from vfio INTx initialization
Greg Kurz (2):
xive: Make some device types not user creatable
xics: Make some device types not user creatable
Stefan Brankovic (1):
target/ppc: Fix for optimized vsl/vsr instructions
hw/intc/spapr_xive.c | 295 ++++++++----
hw/intc/spapr_xive_kvm.c | 22 +-
hw/intc/xics.c | 10 +
hw/intc/xics_kvm.c | 9 +-
hw/intc/xics_spapr.c | 110 ++++-
hw/intc/xive.c | 15 +
hw/ppc/spapr.c | 52 ++-
hw/ppc/spapr_caps.c | 64 +++
hw/ppc/spapr_cpu_core.c | 3 +-
hw/ppc/spapr_hcall.c | 7 +-
hw/ppc/spapr_irq.c | 668 +++++++++-------------------
hw/ppc/spapr_pci.c | 16 +-
include/hw/pci-host/spapr.h | 4 +-
include/hw/ppc/spapr.h | 17 +-
include/hw/ppc/spapr_irq.h | 72 +--
include/hw/ppc/spapr_xive.h | 9 +-
include/hw/ppc/xics_spapr.h | 6 +-
target/ppc/translate/vmx-impl.inc.c | 84 ++--
18 files changed, 769 insertions(+), 694 deletions(-)
--
2.21.0
- [PATCH v4 00/19] spapr: IRQ subsystem cleanup,
David Gibson <=
- [PATCH v4 02/19] xics: Make some device types not user creatable, David Gibson, 2019/10/09
- [PATCH v4 04/19] spapr, xics, xive: Introduce SpaprInterruptController QOM interface, David Gibson, 2019/10/09
- [PATCH v4 03/19] target/ppc: Fix for optimized vsl/vsr instructions, David Gibson, 2019/10/09
- [PATCH v4 12/19] spapr: Remove SpaprIrq::init_kvm hook, David Gibson, 2019/10/09
- [PATCH v4 18/19] spapr: Handle irq backend changes with VFIO PCI devices, David Gibson, 2019/10/09
- [PATCH v4 06/19] spapr, xics, xive: Move irq claim and free from SpaprIrq to SpaprInterruptController, David Gibson, 2019/10/09
- [PATCH v4 14/19] spapr, xics, xive: Move SpaprIrq::post_load hook to backends, David Gibson, 2019/10/09
- [PATCH v4 16/19] spapr: Move SpaprIrq::nr_xirqs to SpaprMachineClass, David Gibson, 2019/10/09