[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v3 00/34] spapr: IRQ subsystem cleanup
From: |
David Gibson |
Subject: |
Re: [PATCH v3 00/34] spapr: IRQ subsystem cleanup |
Date: |
Thu, 3 Oct 2019 16:18:45 +1000 |
User-agent: |
Mutt/1.12.1 (2019-06-15) |
On Wed, Oct 02, 2019 at 12:51:34PM +1000, David Gibson wrote:
> 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.
Since there seems to be general agreement on that part, I've now
merged the first 20 patches of this series into ppc-for-4.2, which I
intend to send a PR for tomorroow.
>
> 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 (34):
> xics: Minor fixes for XICSFabric interface
> xics: Eliminate 'reject', 'resend' and 'eoi' class hooks
> xics: Rename misleading ics_simple_*() functions
> xics: Eliminate reset hook
> xics: Merge TYPE_ICS_BASE and TYPE_ICS_SIMPLE classes
> xics: Create sPAPR specific ICS subtype
> spapr: Fold spapr_phb_lsi_qirq() into its single caller
> spapr: Replace spapr_vio_qirq() helper with spapr_vio_irq_pulse()
> helper
> spapr: Clarify and fix handling of nr_irqs
> spapr: Eliminate nr_irqs parameter to SpaprIrq::init
> spapr: Fix indexing of XICS irqs
> spapr: Simplify spapr_qirq() handling
> spapr: Eliminate SpaprIrq:get_nodename method
> spapr: Remove unhelpful tracepoints from spapr_irq_free_xics()
> spapr: Handle freeing of multiple irqs in frontend only
> spapr, xics, xive: Better use of assert()s on irq claim/free paths
> xive: Improve irq claim/free path
> spapr: Use less cryptic representation of which irq backends are
> supported
> spapr: Add return value to spapr_irq_check()
> spapr: Eliminate SpaprIrq::init hook
> 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
>
> hw/char/spapr_vty.c | 3 +-
> hw/intc/spapr_xive.c | 298 ++++++++-----
> hw/intc/spapr_xive_kvm.c | 30 +-
> hw/intc/trace-events | 10 +-
> hw/intc/xics.c | 210 +++------
> hw/intc/xics_kvm.c | 9 +-
> hw/intc/xics_spapr.c | 157 ++++++-
> hw/net/spapr_llan.c | 3 +-
> hw/ppc/pnv_psi.c | 6 +-
> hw/ppc/spapr.c | 57 ++-
> hw/ppc/spapr_caps.c | 64 +++
> hw/ppc/spapr_cpu_core.c | 3 +-
> hw/ppc/spapr_hcall.c | 7 +-
> hw/ppc/spapr_irq.c | 847 +++++++++++-------------------------
> hw/ppc/spapr_pci.c | 10 +-
> hw/ppc/spapr_vio.c | 3 +-
> hw/ppc/trace-events | 4 -
> include/hw/pci-host/spapr.h | 11 +-
> include/hw/ppc/spapr.h | 14 +-
> include/hw/ppc/spapr_irq.h | 89 ++--
> include/hw/ppc/spapr_vio.h | 5 +-
> include/hw/ppc/spapr_xive.h | 9 +-
> include/hw/ppc/xics.h | 33 +-
> include/hw/ppc/xics_spapr.h | 10 +-
> include/hw/ppc/xive.h | 2 +-
> 25 files changed, 897 insertions(+), 997 deletions(-)
>
--
David Gibson | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_
| _way_ _around_!
http://www.ozlabs.org/~dgibson
signature.asc
Description: PGP signature
- [PATCH v3 28/34] spapr, xics, xive: Match signatures for XICS and XIVE KVM connect routines, (continued)
- [PATCH v3 28/34] spapr, xics, xive: Match signatures for XICS and XIVE KVM connect routines, David Gibson, 2019/10/01
- [PATCH v3 30/34] spapr, xics, xive: Move SpaprIrq::reset hook logic into activate/deactivate, David Gibson, 2019/10/01
- [PATCH v3 31/34] spapr, xics, xive: Move SpaprIrq::post_load hook to backends, David Gibson, 2019/10/01
- [PATCH v3 34/34] spapr: Remove last pieces of SpaprIrq, David Gibson, 2019/10/01
- Re: [PATCH v3 00/34] spapr: IRQ subsystem cleanup,
David Gibson <=