Re: [PATCH v3 2/2] genirq: fasteoi supports resend on concurrent invoke

From: Gowans, James
Date: Thu Jun 08 2023 - 08:12:40 EST


On Wed, 2023-06-07 at 14:13 +0100, Marc Zyngier wrote:
> On 2023-06-07 13:21, Gowans, James wrote:
> > On Tue, 2023-06-06 at 18:05 +0100, Marc Zyngier wrote:
> > > On Mon, 05 Jun 2023 16:57:23 +0100,
> > > James Gowans <jgowans@xxxxxxxxxx> wrote:
> > > > ... and enable that functionality for GIC-v3 only.
> > >
> > > nit: drop the multi-line subject.
> >
> > Would you prefer two commits - one to introduce the functionality and
> > one
> > to enable it for GIC-v3?
>
> I'd prefer that. It is in general better to decouple driver stuff from
> core code.

Done, new rev with cover letter here:
https://lore.kernel.org/lkml/20230608120021.3273400-1-jgowans@xxxxxxxxxx/
Also added detailed testing data to the cover - I hope that's
useful/correct.

Just one more thing: I've been thinking about it more and admit to still
being unsure of the justification for when we specifically *don't* want
the resend functionality to happen: the justification for gating it behind
a flag. The example you gave was for a wake-up source where it's not
desirable for a wakeup source to be resent. But I don't see how that case
can happen in practice: either that interrupt would never get to the
handle_fast_eoi() handler (there's probably no handler to run for it?) or
if it did it would likely use different struct irq_desc per CPU - this
race would be hit all the time if wakeup sources ran handlers and shared
irq_desc.

We have something that works now so I'm happy to go with this - I just
want to point out that I'm still struggling to see when it would actually
be wrong to apply this resend logic to a user of handle_fast_eoi().

JG