[GICv3 ITS]S2IDLE framework does not invoke syscore_ops in GICv3 ITS driver
Donghyeok Choe
d7271.choe at samsung.com
Tue Apr 8 15:28:51 PDT 2025
On Tue, Apr 08, 2025 at 07:51:32AM +0100, Marc Zyngier wrote:
> On Mon, 07 Apr 2025 23:51:46 +0100,
> Donghyeok Choe <d7271.choe at samsung.com> wrote:
> >
> > [1 <text/plain; us-ascii (7bit)>]
> > On Mon, Apr 07, 2025 at 10:17:43AM +0100, Sudeep Holla wrote:
>
> > > Do you use any suspend/resume logic in drivers/irqchip/irq-gic-pm.c ?
> > No, there are parts of the GIC that require secure access, so the
> > GIC save/restore is performed by the firmware.
> > Since the GIC-ITS is entirely controlled as a non-secure IP,
> > I think it is more efficient to perform save/restore in the kernel.
>
> More efficient? Give me *one* aspect of this save/restore sequence
> that is done in a more efficiently way in the kernel. Dumping MMIO
> accesses into memory has the exact same cost at EL1, El2 or EL3, and
> splitting things along an arbitrary line to paper over bad firmware is
> not a valid argument.
If I had to highlight just one efficiency gain — it's that I get to
reuse well-tested and well-written save/restore code without
reinventing the wheel (or worse, reinventing a square one).
And as for bad firmware... I guess it deserves the punishment
of handling GIC ITS save/restore.
That said, I truly appreciate your insight, and I’ll make an effort
to avoid relying on such suboptimal kernel usage going forward.
Best regards,
Donghyeok Choe
More information about the linux-arm-kernel
mailing list