[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20141214100559.278C71400EA@ozlabs.org>
Date: Sun, 14 Dec 2014 21:05:59 +1100 (AEDT)
From: Michael Ellerman <mpe@...erman.id.au>
To: "Shreyas B. Prabhu" <shreyas@...ux.vnet.ibm.com>,
linux-kernel@...r.kernel.org
Cc: "Shreyas B. Prabhu" <shreyas@...ux.vnet.ibm.com>,
linuxppc-dev@...ts.ozlabs.org, Paul Mackerras <paulus@...ba.org>
Subject: Re: [v4, 1/4] powerpc: powernv: Switch off MMU before entering nap/sleep/rvwinkle mode
On Tue, 2014-09-12 at 18:56:50 UTC, "Shreyas B. Prabhu" wrote:
> From: Paul Mackerras <paulus@...ba.org>
>
> Currently, when going idle, we set the flag indicating that we are in
> nap mode (paca->kvm_hstate.hwthread_state) and then execute the nap
> (or sleep or rvwinkle) instruction, all with the MMU on. This is bad
> for two reasons: (a) the architecture specifies that those instructions
> must be executed with the MMU off, and in fact with only the SF, HV, ME
> and possibly RI bits set, and (b) this introduces a race, because as
> soon as we set the flag, another thread can switch the MMU to a guest
> context. If the race is lost, this thread will typically start looping
> on relocation-on ISIs at 0xc...4400.
>
> This fixes it by setting the MSR as required by the architecture before
> setting the flag or executing the nap/sleep/rvwinkle instruction.
>
> [ shreyas@...ux.vnet.ibm.com: Edited to handle LE ]
> Signed-off-by: Paul Mackerras <paulus@...ba.org>
> Signed-off-by: Shreyas B. Prabhu <shreyas@...ux.vnet.ibm.com>
> Cc: Benjamin Herrenschmidt <benh@...nel.crashing.org>
> Cc: Michael Ellerman <mpe@...erman.id.au>
> Cc: linuxppc-dev@...ts.ozlabs.org
I'm going to CC this to stable unless anyone objects. It's not something people
are likely to hit, but the result is fairly catastrophic.
cheers
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists