2014-06-30 06:29:01

by Preeti U Murthy

[permalink] [raw]
Subject: [PATCH] powerpc/powernv: Check for IRQHAPPENED before sleeping

Commit 8d6f7c5a: "powerpc/powernv: Make it possible to skip the IRQHAPPENED
check in power7_nap()" added code that prevents even cores which enter sleep
on idle, from checking for pending interrupts. Fix this.

Signed-off-by: Preeti U Murthy <[email protected]>
---

arch/powerpc/kernel/idle_power7.S | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/powerpc/kernel/idle_power7.S b/arch/powerpc/kernel/idle_power7.S
index 2480256..5cf3d36 100644
--- a/arch/powerpc/kernel/idle_power7.S
+++ b/arch/powerpc/kernel/idle_power7.S
@@ -131,7 +131,7 @@ _GLOBAL(power7_nap)

_GLOBAL(power7_sleep)
li r3,1
- li r4,0
+ li r4,1
b power7_powersave_common
/* No return */


2014-06-30 14:01:11

by Michael Neuling

[permalink] [raw]
Subject: Re: [PATCH] powerpc/powernv: Check for IRQHAPPENED before sleeping

On Mon, 2014-06-30 at 11:54 +0530, Preeti U Murthy wrote:
> Commit 8d6f7c5a: "powerpc/powernv: Make it possible to skip the IRQHAPPENED
> check in power7_nap()" added code that prevents even cores which enter sleep
> on idle, from checking for pending interrupts. Fix this.
>
> Signed-off-by: Preeti U Murthy <[email protected]>

Acked-by: Michael Neuling <[email protected]>

> ---
>
> arch/powerpc/kernel/idle_power7.S | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/arch/powerpc/kernel/idle_power7.S b/arch/powerpc/kernel/idle_power7.S
> index 2480256..5cf3d36 100644
> --- a/arch/powerpc/kernel/idle_power7.S
> +++ b/arch/powerpc/kernel/idle_power7.S
> @@ -131,7 +131,7 @@ _GLOBAL(power7_nap)
>
> _GLOBAL(power7_sleep)
> li r3,1
> - li r4,0
> + li r4,1
> b power7_powersave_common
> /* No return */
>
>

2014-07-01 00:52:11

by Michael Ellerman

[permalink] [raw]
Subject: Re: [PATCH] powerpc/powernv: Check for IRQHAPPENED before sleeping

On Mon, 2014-06-30 at 11:54 +0530, Preeti U Murthy wrote:
> Commit 8d6f7c5a: "powerpc/powernv: Make it possible to skip the IRQHAPPENED
> check in power7_nap()" added code that prevents even cores which enter sleep
> on idle, from checking for pending interrupts. Fix this.

To be clear, it is a bug in the original commit. Mikey and I pair programmed
that code, and he was *definitely* typing at that point ;)

Can you please include in the changelog what the symptom of the bug is, and
have you seen it in practice?

The bad commit went into 3.16-rc1, so we don't need to backport this to any
stable release.

cheers

> diff --git a/arch/powerpc/kernel/idle_power7.S b/arch/powerpc/kernel/idle_power7.S
> index 2480256..5cf3d36 100644
> --- a/arch/powerpc/kernel/idle_power7.S
> +++ b/arch/powerpc/kernel/idle_power7.S
> @@ -131,7 +131,7 @@ _GLOBAL(power7_nap)
>
> _GLOBAL(power7_sleep)
> li r3,1
> - li r4,0
> + li r4,1
> b power7_powersave_common
> /* No return */
>
>




2014-07-01 03:16:01

by Michael Neuling

[permalink] [raw]
Subject: Re: [PATCH] powerpc/powernv: Check for IRQHAPPENED before sleeping

On Tue, 2014-07-01 at 10:52 +1000, Michael Ellerman wrote:
> On Mon, 2014-06-30 at 11:54 +0530, Preeti U Murthy wrote:
> > Commit 8d6f7c5a: "powerpc/powernv: Make it possible to skip the IRQHAPPENED
> > check in power7_nap()" added code that prevents even cores which enter sleep
> > on idle, from checking for pending interrupts. Fix this.
>
> To be clear, it is a bug in the original commit. Mikey and I pair programmed
> that code, and he was *definitely* typing at that point ;)

It's always nice to know that in battle a comrade will throw himself on
a grenade to save you. :-P

Actually, I'm pretty sure this happened when you were away (probably on
a beach somewhere), I was forward porting the patch set, hit a conflict
and fucked it up.

Mikey

>
> Can you please include in the changelog what the symptom of the bug is, and
> have you seen it in practice?
>
> The bad commit went into 3.16-rc1, so we don't need to backport this to any
> stable release.
>
> cheers
>
> > diff --git a/arch/powerpc/kernel/idle_power7.S b/arch/powerpc/kernel/idle_power7.S
> > index 2480256..5cf3d36 100644
> > --- a/arch/powerpc/kernel/idle_power7.S
> > +++ b/arch/powerpc/kernel/idle_power7.S
> > @@ -131,7 +131,7 @@ _GLOBAL(power7_nap)
> >
> > _GLOBAL(power7_sleep)
> > li r3,1
> > - li r4,0
> > + li r4,1
> > b power7_powersave_common
> > /* No return */
> >
> >
>
>
>
>
>