Re: [PATCH -v2 -tip] fix race between stop_two_cpus and stop_cpus

From: Mel Gorman
Date: Fri Nov 01 2013 - 10:47:36 EST


On Fri, Nov 01, 2013 at 10:41:46AM -0400, Rik van Riel wrote:
> Subject: fix race between stop_two_cpus and stop_cpus
>
> There is a race between stop_two_cpus, and the global stop_cpus.
>
> It is possible for two CPUs to get their stopper functions queued
> "backwards" from one another, resulting in the stopper threads
> getting stuck, and the system hanging. This can happen because
> queuing up stoppers is not synchronized.
>
> This patch adds synchronization between stop_cpus (a rare operation),
> and stop_two_cpus.
>
> Signed-off-by: Rik van Riel <riel@xxxxxxxxxx>
> ---
> v2: use lglock, as suggested by Peter & Mel, thanks to both of you
> for insisting on nicer code :)
>

This is a tad more comprehensible :). Thanks!

Acked-by: Mel Gorman <mgorman@xxxxxxx>

--
Mel Gorman
SUSE Labs
--
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/