# \[PATCH\] powerpc/smp: Do not disable IPI interrupts during suspend

- Subsystems: LINUX FOR POWERPC (32-BIT AND 64-BIT), THE REST
- Maintainers: Madhavan Srinivasan, Linus Torvalds
- List: linuxppc-dev
- 9 messages, 3 authors
- Page: https://ratatoskr.run/linuxppc-dev/2012/07/3896451/t

## \[PATCH\] powerpc/smp: Do not disable IPI interrupts during suspend

- From: Zhao Chenhui \<hidden\>
- Date: 2012-07-20 12:45:23 
- Message: https://ratatoskr.run/linuxppc-dev/2012/07/3896451.md

```text
During suspend, all interrupts including IPI will be disabled. In this case,
the suspend process will hang in SMP. To prevent this, pass the flag
IRQF_NO_SUSPEND when requesting IPI irq.

Signed-off-by: Zhao Chenhui <redacted>
Signed-off-by: Li Yang <redacted>
---
 arch/powerpc/kernel/smp.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/arch/powerpc/kernel/smp.c b/arch/powerpc/kernel/smp.c
index fecb038..d26bbf8 100644
--- a/arch/powerpc/kernel/smp.c
+++ b/arch/powerpc/kernel/smp.c
@@ -171,7 +171,7 @@ int smp_request_message_ipi(int virq, int msg)
 	}
 #endif
 	err = request_irq(virq, smp_ipi_action[msg],
-			  IRQF_PERCPU | IRQF_NO_THREAD,
+			  IRQF_PERCPU | IRQF_NO_THREAD | IRQF_NO_SUSPEND,
 			  smp_ipi_name[msg], 0);
 	WARN(err < 0, "unable to request_irq %d for %s (rc %d)\n",
 		virq, smp_ipi_name[msg], err);
-- 
1.6.4.1
```

## Re: \[PATCH\] powerpc/smp: Do not disable IPI interrupts during suspend

- From: Kumar Gala \<hidden\>
- Date: 2012-07-27 21:58:46 
- Message: https://ratatoskr.run/linuxppc-dev/2012/07/3899979.md

```text

On Jul 20, 2012, at 7:47 AM, Zhao Chenhui wrote:

> During suspend, all interrupts including IPI will be disabled. In this =
case,
> the suspend process will hang in SMP. To prevent this, pass the flag
> IRQF_NO_SUSPEND when requesting IPI irq.
>=20
> Signed-off-by: Zhao Chenhui <redacted>
> Signed-off-by: Li Yang <redacted>
> ---
> arch/powerpc/kernel/smp.c |    2 +-
> 1 files changed, 1 insertions(+), 1 deletions(-)

BenH,

Can you ack?

- k

>=20
> diff --git a/arch/powerpc/kernel/smp.c b/arch/powerpc/kernel/smp.c
> index fecb038..d26bbf8 100644
> --- a/arch/powerpc/kernel/smp.c
> +++ b/arch/powerpc/kernel/smp.c
> @@ -171,7 +171,7 @@ int smp_request_message_ipi(int virq, int msg)
> 	}
> #endif
> 	err =3D request_irq(virq, smp_ipi_action[msg],
> -			  IRQF_PERCPU | IRQF_NO_THREAD,
> +			  IRQF_PERCPU | IRQF_NO_THREAD | =
IRQF_NO_SUSPEND,
> 			  smp_ipi_name[msg], 0);
> 	WARN(err < 0, "unable to request_irq %d for %s (rc %d)\n",
> 		virq, smp_ipi_name[msg], err);
> --=20
> 1.6.4.1
>=20
```

## Re: \[PATCH\] powerpc/smp: Do not disable IPI interrupts during suspend

- From: Benjamin Herrenschmidt \<benh@kernel.crashing.org\>
- Date: 2012-07-27 22:20:49 
- Message: https://ratatoskr.run/linuxppc-dev/2012/07/3899983.md

```text
On Fri, 2012-07-27 at 16:58 -0500, Kumar Gala wrote:
> On Jul 20, 2012, at 7:47 AM, Zhao Chenhui wrote:
> 
> > During suspend, all interrupts including IPI will be disabled. In this case,
> > the suspend process will hang in SMP. To prevent this, pass the flag
> > IRQF_NO_SUSPEND when requesting IPI irq.
> > 
> > Signed-off-by: Zhao Chenhui <redacted>
> > Signed-off-by: Li Yang <redacted>
> > ---
> > arch/powerpc/kernel/smp.c |    2 +-
> > 1 files changed, 1 insertions(+), 1 deletions(-)
> 
> BenH,
> 
> Can you ack?

No I'll merge it but not until it's been in next for a bit unless you
have some strong emergency there, it's on my mental list of things to
shovel into next after rc1.

Curiosity: didn't we use to disable all non-boot CPUs on suspend ?

Cheers,
Ben.

> - k
> 
> > 
> > diff --git a/arch/powerpc/kernel/smp.c b/arch/powerpc/kernel/smp.c
> > index fecb038..d26bbf8 100644
> > --- a/arch/powerpc/kernel/smp.c
> > +++ b/arch/powerpc/kernel/smp.c
> > @@ -171,7 +171,7 @@ int smp_request_message_ipi(int virq, int msg)
> > 	}
> > #endif
> > 	err = request_irq(virq, smp_ipi_action[msg],
> > -			  IRQF_PERCPU | IRQF_NO_THREAD,
> > +			  IRQF_PERCPU | IRQF_NO_THREAD | IRQF_NO_SUSPEND,
> > 			  smp_ipi_name[msg], 0);
> > 	WARN(err < 0, "unable to request_irq %d for %s (rc %d)\n",
> > 		virq, smp_ipi_name[msg], err);
> > -- 
> > 1.6.4.1
> > 
```

## Re: \[PATCH\] powerpc/smp: Do not disable IPI interrupts during suspend

- From: Kumar Gala \<hidden\>
- Date: 2012-07-28 14:03:20 
- Message: https://ratatoskr.run/linuxppc-dev/2012/07/3900105.md

```text

On Jul 27, 2012, at 5:20 PM, Benjamin Herrenschmidt wrote:

> On Fri, 2012-07-27 at 16:58 -0500, Kumar Gala wrote:
>> On Jul 20, 2012, at 7:47 AM, Zhao Chenhui wrote:
>>=20
>>> During suspend, all interrupts including IPI will be disabled. In =
this case,
>>> the suspend process will hang in SMP. To prevent this, pass the flag
>>> IRQF_NO_SUSPEND when requesting IPI irq.
>>>=20
>>> Signed-off-by: Zhao Chenhui <redacted>
>>> Signed-off-by: Li Yang <redacted>
>>> ---
>>> arch/powerpc/kernel/smp.c |    2 +-
>>> 1 files changed, 1 insertions(+), 1 deletions(-)
>>=20
>> BenH,
>>=20
>> Can you ack?
>=20
> No I'll merge it but not until it's been in next for a bit unless you
> have some strong emergency there, it's on my mental list of things to
> shovel into next after rc1.

I wasn't clear, I was meaning for my 'next' tree, not 3.6.  Trying to =
get these FSL PM patches into my 'next' for 3.7.

- k

> Curiosity: didn't we use to disable all non-boot CPUs on suspend ?
>=20
> Cheers,
> Ben.
>=20
>> - k
>>=20
>>>=20
>>> diff --git a/arch/powerpc/kernel/smp.c b/arch/powerpc/kernel/smp.c
>>> index fecb038..d26bbf8 100644
>>> --- a/arch/powerpc/kernel/smp.c
>>> +++ b/arch/powerpc/kernel/smp.c
>>> @@ -171,7 +171,7 @@ int smp_request_message_ipi(int virq, int msg)
>>> 	}
>>> #endif
>>> 	err =3D request_irq(virq, smp_ipi_action[msg],
>>> -			  IRQF_PERCPU | IRQF_NO_THREAD,
>>> +			  IRQF_PERCPU | IRQF_NO_THREAD | =
IRQF_NO_SUSPEND,
>>> 			  smp_ipi_name[msg], 0);
>>> 	WARN(err < 0, "unable to request_irq %d for %s (rc %d)\n",
>>> 		virq, smp_ipi_name[msg], err);
>>> --=20
>>> 1.6.4.1
>>>=20
>=20
```

## Re: \[PATCH\] powerpc/smp: Do not disable IPI interrupts during suspend

- From: Zhao Chenhui \<hidden\>
- Date: 2012-08-02 10:02:33 
- Message: https://ratatoskr.run/linuxppc-dev/2012/08/3902142.md

```text
On Sat, Jul 28, 2012 at 08:20:31AM +1000, Benjamin Herrenschmidt wrote:
> On Fri, 2012-07-27 at 16:58 -0500, Kumar Gala wrote:
> > On Jul 20, 2012, at 7:47 AM, Zhao Chenhui wrote:
> > 
> > > During suspend, all interrupts including IPI will be disabled. In this case,
> > > the suspend process will hang in SMP. To prevent this, pass the flag
> > > IRQF_NO_SUSPEND when requesting IPI irq.
> > > 
> > > Signed-off-by: Zhao Chenhui <redacted>
> > > Signed-off-by: Li Yang <redacted>
> > > ---
> > > arch/powerpc/kernel/smp.c |    2 +-
> > > 1 files changed, 1 insertions(+), 1 deletions(-)
> > 
> > BenH,
> > 
> > Can you ack?
> 
> No I'll merge it but not until it's been in next for a bit unless you
> have some strong emergency there, it's on my mental list of things to
> shovel into next after rc1.
> 
> Curiosity: didn't we use to disable all non-boot CPUs on suspend ?
> 
> Cheers,
> Ben.

Yes, we disabled all non-boot CPUs on suspend by calling disable_nonboot_cpus().
The disable_nonboot_cpus() needs IPIs to work. But prior to
calling disable_nonboot_cpus(), the IPIs are disabled in dpm_suspend_noirq().

-Chenhui
```

## Re: \[PATCH\] powerpc/smp: Do not disable IPI interrupts during suspend

- From: Kumar Gala \<hidden\>
- Date: 2012-08-10 12:41:16 
- Message: https://ratatoskr.run/linuxppc-dev/2012/08/3906528.md

```text

On Aug 2, 2012, at 5:04 AM, Zhao Chenhui wrote:

> On Sat, Jul 28, 2012 at 08:20:31AM +1000, Benjamin Herrenschmidt =
wrote:
>> On Fri, 2012-07-27 at 16:58 -0500, Kumar Gala wrote:
>>> On Jul 20, 2012, at 7:47 AM, Zhao Chenhui wrote:
>>>=20
>>>> During suspend, all interrupts including IPI will be disabled. In =
this case,
>>>> the suspend process will hang in SMP. To prevent this, pass the =
flag
>>>> IRQF_NO_SUSPEND when requesting IPI irq.
>>>>=20
>>>> Signed-off-by: Zhao Chenhui <redacted>
>>>> Signed-off-by: Li Yang <redacted>
>>>> ---
>>>> arch/powerpc/kernel/smp.c |    2 +-
>>>> 1 files changed, 1 insertions(+), 1 deletions(-)
>>>=20
>>> BenH,
>>>=20
>>> Can you ack?
>>=20
>> No I'll merge it but not until it's been in next for a bit unless you
>> have some strong emergency there, it's on my mental list of things to
>> shovel into next after rc1.
>>=20
>> Curiosity: didn't we use to disable all non-boot CPUs on suspend ?
>>=20
>> Cheers,
>> Ben.
>=20
> Yes, we disabled all non-boot CPUs on suspend by calling =
disable_nonboot_cpus().
> The disable_nonboot_cpus() needs IPIs to work. But prior to
> calling disable_nonboot_cpus(), the IPIs are disabled in =
dpm_suspend_noirq().
>=20
> -Chenhui

Benh, Ack?

- k=
```

## Re: \[PATCH\] powerpc/smp: Do not disable IPI interrupts during suspend

- From: Kumar Gala \<hidden\>
- Date: 2012-09-13 18:17:11 
- Message: https://ratatoskr.run/linuxppc-dev/2012/09/3923020.md

```text

On Aug 10, 2012, at 7:40 AM, Kumar Gala wrote:

>=20
> On Aug 2, 2012, at 5:04 AM, Zhao Chenhui wrote:
>=20
>> On Sat, Jul 28, 2012 at 08:20:31AM +1000, Benjamin Herrenschmidt =
wrote:
>>> On Fri, 2012-07-27 at 16:58 -0500, Kumar Gala wrote:
>>>> On Jul 20, 2012, at 7:47 AM, Zhao Chenhui wrote:
>>>>=20
>>>>> During suspend, all interrupts including IPI will be disabled. In =
this case,
>>>>> the suspend process will hang in SMP. To prevent this, pass the =
flag
>>>>> IRQF_NO_SUSPEND when requesting IPI irq.
>>>>>=20
>>>>> Signed-off-by: Zhao Chenhui <redacted>
>>>>> Signed-off-by: Li Yang <redacted>
>>>>> ---
>>>>> arch/powerpc/kernel/smp.c |    2 +-
>>>>> 1 files changed, 1 insertions(+), 1 deletions(-)
>>>>=20
>>>> BenH,
>>>>=20
>>>> Can you ack?
>>>=20
>>> No I'll merge it but not until it's been in next for a bit unless =
you
>>> have some strong emergency there, it's on my mental list of things =
to
>>> shovel into next after rc1.
>>>=20
>>> Curiosity: didn't we use to disable all non-boot CPUs on suspend ?
>>>=20
>>> Cheers,
>>> Ben.
>>=20
>> Yes, we disabled all non-boot CPUs on suspend by calling =
disable_nonboot_cpus().
>> The disable_nonboot_cpus() needs IPIs to work. But prior to
>> calling disable_nonboot_cpus(), the IPIs are disabled in =
dpm_suspend_noirq().
>>=20
>> -Chenhui
>=20
> Benh, Ack?

Ben?

- k=
```

## Re: \[PATCH\] powerpc/smp: Do not disable IPI interrupts during suspend

- From: Benjamin Herrenschmidt \<benh@kernel.crashing.org\>
- Date: 2012-09-13 22:11:53 
- Message: https://ratatoskr.run/linuxppc-dev/2012/09/3923121.md

```text
On Thu, 2012-09-13 at 13:16 -0500, Kumar Gala wrote:
> >> Yes, we disabled all non-boot CPUs on suspend by calling
> disable_nonboot_cpus().
> >> The disable_nonboot_cpus() needs IPIs to work. But prior to
> >> calling disable_nonboot_cpus(), the IPIs are disabled in
> dpm_suspend_noirq().

Sure, no biggie on this one, forgot to ack it, just stick my ack in and
put it in your tree.

Cheers,
Ben.
```

## Re: \[PATCH\] powerpc/smp: Do not disable IPI interrupts during suspend

- From: Kumar Gala \<hidden\>
- Date: 2012-09-19 14:52:38 
- Message: https://ratatoskr.run/linuxppc-dev/2012/09/3925690.md

```text

On Jul 20, 2012, at 7:47 AM, Zhao Chenhui wrote:

> During suspend, all interrupts including IPI will be disabled. In this =
case,
> the suspend process will hang in SMP. To prevent this, pass the flag
> IRQF_NO_SUSPEND when requesting IPI irq.
>=20
> Signed-off-by: Zhao Chenhui <redacted>
> Signed-off-by: Li Yang <redacted>
> ---
> arch/powerpc/kernel/smp.c |    2 +-
> 1 files changed, 1 insertions(+), 1 deletions(-)

applied to next

- k=
```
