[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v4 07/19] spapr: Formalize notion of active interrupt control
From: |
David Gibson |
Subject: |
Re: [PATCH v4 07/19] spapr: Formalize notion of active interrupt controller |
Date: |
Wed, 9 Oct 2019 22:38:12 +1100 |
User-agent: |
Mutt/1.12.1 (2019-06-15) |
On Wed, Oct 09, 2019 at 11:19:26AM +0200, Cédric Le Goater wrote:
> On 09/10/2019 08:08, David Gibson wrote:
> > spapr now has the mechanism of constructing both XICS and XIVE instances of
> > the SpaprInterruptController interface. However, only one of the interrupt
> > controllers will actually be active at any given time, depending on feature
> > negotiation with the guest. This is handled in the current code via
> > spapr_irq_current() which checks the OV5 vector from feature negotiation to
> > determine the current backend.
> >
> > Determining the active controller at the point we need it like this
> > can be pretty confusing, because it makes it very non obvious at what
> > points the active controller can change. This can make it difficult
> > to reason about the code and where a change of active controller could
> > appear in sequence with other events.
> >
> > Make this mechanism more explicit by adding an 'active_intc' pointer
> > and an explicit spapr_irq_update_active_intc() function to update it
> > from the CAS state. We also add hooks on the intc backend which will
> > get called when it is activated or deactivated.
> >
> > For now we just introduce the switch and hooks, later patches will
> > actually start using them.
> >
> > Signed-off-by: David Gibson <address@hidden>
> > Reviewed-by: Greg Kurz <address@hidden>
> Btw, we will need an extra xive2 pointer for the Power10 interrupt
> controller.
Yeah, I figured. I think it should be easier to add more irq backends
with the new structure.
--
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 v4 00/19] spapr: IRQ subsystem cleanup, David Gibson, 2019/10/09
- [PATCH v4 02/19] xics: Make some device types not user creatable, David Gibson, 2019/10/09
- [PATCH v4 01/19] xive: Make some device types not user creatable, David Gibson, 2019/10/09
- [PATCH v4 03/19] target/ppc: Fix for optimized vsl/vsr instructions, David Gibson, 2019/10/09
- [PATCH v4 04/19] spapr, xics, xive: Introduce SpaprInterruptController QOM interface, David Gibson, 2019/10/09
- [PATCH v4 08/19] spapr, xics, xive: Move set_irq from SpaprIrq to SpaprInterruptController, David Gibson, 2019/10/09
- [PATCH v4 12/19] spapr: Remove SpaprIrq::init_kvm hook, David Gibson, 2019/10/09
- [PATCH v4 07/19] spapr: Formalize notion of active interrupt controller, 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 18/19] spapr: Handle irq backend changes with VFIO PCI devices, David Gibson, 2019/10/09
- [PATCH v4 15/19] spapr: Remove SpaprIrq::nr_msis, David Gibson, 2019/10/09
- [PATCH v4 09/19] spapr, xics, xive: Move print_info from SpaprIrq to SpaprInterruptController, David Gibson, 2019/10/09