qemu-ppc
[Top][All Lists]
Advanced

[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

Attachment: signature.asc
Description: PGP signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]