[lkml]   [2014]   [Dec]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: [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 <>
> 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.
> [ Edited to handle LE ]
> Signed-off-by: Paul Mackerras <>
> Signed-off-by: Shreyas B. Prabhu <>
> Cc: Benjamin Herrenschmidt <>
> Cc: Michael Ellerman <>
> Cc:

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.


 \ /
  Last update: 2014-12-14 11:21    [W:0.050 / U:1.224 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site