Re: [PATCH] 2.6.25+: Fix cpu hotplug in softirq code

From: Olof Johansson
Date: Tue Apr 29 2008 - 19:27:22 EST


On Thu, Apr 24, 2008 at 09:13:11PM +0200, Christian Borntraeger wrote:
> Hello Olof,
>
> currently cpu hotplug (unplug) seems broken on s390 and likely others. On cpu
> unplug the system starts to behave very strange and hangs.
>
> I bisected the problem to the following commit:
>
> -----
> commit 48f20a9a9488c432fc86df1ff4b7f4fa895d1183
> Author: Olof Johansson <olof@xxxxxxxxx>
> Date: Tue Mar 4 15:23:25 2008 -0800
> tasklets: execute tasklets in the same order they were queued
> -----
>
> Reverting this patch seems to fix the problem. I looked into takeover_tasklet
> and it seems that there is a way to corrupt the tail pointer of the current
> cpu. If the tasklet list of the frozen cpu is empty, the tail pointer of the
> current cpu points to the address of the head pointer of the stopped cpu and
> not to the next pointer of a tasklet_struct.
>
> This patch avoids the list splice of the list is empty and cpu hotplug seems
> to work as the tail pointer is not corrupted.
> Olof, can you look into that patch and ACK/NACK it so Andrew can push this to
> Linus, if appropriate?
> Please note that some lines are longer than 80 chars, but line-wrapping looked
> worse that this version.
>
> Signed-off-by: Christian Borntraeger <borntraeger@xxxxxxxxxx>

I don't have a hotplug-capable system to test on, but the patch looks
good to me. Good catch.

Acked-by: Olof Johansson <olof@xxxxxxxxx>


-Olof
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/