Re: [PATCH] irqchip/gic: restore global interrupts group settings in distributor

From: Russell King - ARM Linux
Date: Wed Aug 05 2015 - 06:21:53 EST


On Wed, Aug 05, 2015 at 10:59:10AM +0100, Marc Zyngier wrote:
> On 05/08/15 10:17, Anson Huang wrote:
> > On Wed, Aug 05, 2015 at 10:12:35AM +0100, Marc Zyngier wrote:
> > I may NOT know the history of enabling secure/non-secure of GIC very well, will spend
> > some time look into it later, during the upstream of our i.MX6UL's suepnd/resume,
> > I found patch(19bcd001 ARM: cobble together FIQ backtracing) break kernel resume function. After
> > looking into the gic driver, I saw the dist_inti set all global interrupts to GROUP 1(non-secure), but in
> > dist_restore, it does NOT restore those settings, after restoring them, suspend/resume works.
>
> Right, this is the code from Russell and Daniel I was talking about. As
> it says in the commit message:
>
> Cobble the FIQ backtracing together, some of this patch is based on
> some of Daniel Thompson's work. Experimental, and not for submission
> yet.
>
> So this patch doesn't apply to mainline.

It's also not intended to be mainline material. As it says "Experimental"
and that means "it will probably break some things". One of the biggest
issues that this patch has is that if the FIQ IPI gets sent, the rest of
the system effectively stops until reboot, because we _never_ ack the FIQ
IPI. Anyone using this patch in a production system is taking a _very_
big risk. No, enabling the other kernel reboot-on-whatever options won't
save you.

> > Don't we need to make this GIC distributor settings after resume aligned with before suspend?
> > Before suspend, global interrupts are set to non-secure, but after resume, it is by default set to
> > secure mode, while cpu controller signal secure interrupts to FIQn, so that is incorrect, not sure
> > if my understanding is correct, please correct me if I am wrong.
>
> You're correct that something has to be done. But this should be done as
> part of Russell and Daniel FIQ series.
>
> Russell, are you willing to carry that patch (or something similar) as
> part of your series?

I don't see the worth of doing so.

My patch is really only meant as a method to stitch the FIQ and NMI
backtrace code together for my own purposes. My patch is derived in
part from my early work and Daniel's patch set, and is definitely
incomplete. It's not going to end up in mainline, and it certainly
has problems, s/r being the least of them.

Even if I merge it into my patch set or patch (I'd prefer it to go
into the patch itself as I'm carrying too many private commits
against mainline already) I don't see the value as I'm unlikely to
re-post that patch, especially as the generic NMI backtrace code is
queued for merging for 4.3-rc1.

This leaves just the FIQ <-> NMI backtrace hookup outstanding, and
that's something which Daniel and myself need to finally settle on -
and that's probably going to be Daniel's patches rather than mine
provided they pass testing here.

--
FTTC broadband for 0.8mile line: currently at 10.5Mbps down 400kbps up
according to speedtest.net.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/