Subject: Re: [PATCH 1/1] powerpc: Ignore IPIs to offline CPUs

From: Brian King <[email-masked]>
Date: Tue, 20 Apr 2010 22:15:40 -0500

On 04/20/2010 09:04 PM, Michael Neuling wrote:
> In message <[email-masked]> you wrote:
>>
>> Since there is nothing to stop an IPI from occurring to an
>> offline CPU, rather than printing a warning to the logs,
>> just ignore the IPI. This was seen while stress testing
>> SMT enable/disable.
> 
> This seems like a recipe for disaster.  Do we at least need a
> WARN_ON_ONCE?

Actually we are only seeing it once per offlining of a CPU,
and only once in a while.
 
My guess is that once the CPU is marked offline fewer IPIs
get sent to it since its no longer in the online mask.

Perhaps we should be disabling IPIs to offline CPUs instead?

-Brian

> 
>> Signed-off-by: Brian King <[email-masked]>
>> ---
>>
>>  arch/powerpc/platforms/pseries/xics.c |    3 ++-
>>  1 file changed, 2 insertions(+), 1 deletion(-)
>>
>> diff -puN arch/powerpc/platforms/pseries/xics.c~powerpc_xics_ipi_offline arch
> /powerpc/platforms/pseries/xics.c
>> --- linux-2.6/arch/powerpc/platforms/pseries/xics.c~powerpc_xics_ipi_offline
> 	2010-04-20 20:46:06.000000000 -0500
>> +++ linux-2.6-bjking1/arch/powerpc/platforms/pseries/xics.c	2010-04-20 20:4
> 7:53.000000000 -0500
>> @@ -545,7 +545,8 @@ static irqreturn_t xics_ipi_dispatch(int
>>  {
>>  	unsigned long *tgt = &per_cpu(xics_ipi_message, cpu);
>>  
>> -	WARN_ON(cpu_is_offline(cpu));
>> +	if (cpu_is_offline(cpu))
>> +		return IRQ_HANDLED;
>>  
>>  	mb();	/* order mmio clearing qirr */
>>  	while (*tgt) {
>> _
> 
> FYI random white space change here.
> 
>> _______________________________________________
>> Linuxppc-dev mailing list
>> [email-masked]
>> https://lists.ozlabs.org/listinfo/linuxppc-dev
>>
> 
> Mikey

-- 
Brian King
Linux on Power Virtualization
IBM Linux Technology Center