[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20090223171323.GB27072@elte.hu>
Date: Mon, 23 Feb 2009 18:13:23 +0100
From: Ingo Molnar <mingo@...e.hu>
To: "Paul E. McKenney" <paulmck@...ux.vnet.ibm.com>
Cc: linux-kernel@...r.kernel.org, vegard.nossum@...il.com,
stable@...nel.org, akpm@...ux-foundation.org, npiggin@...e.de,
penberg@...helsinki.fi
Subject: Re: [PATCH] Teach RCU that idle task is not quiscent state at boot
* Paul E. McKenney <paulmck@...ux.vnet.ibm.com> wrote:
> This patch fixes a bug located by Vegard Nossum with the aid of
> kmemcheck.
>
> The boot CPU runs in the context of its idle thread during boot-up.
> During this time, idle_cpu(0) will always return nonzero, which will
> fool Classic and Hierarchical RCU into deciding that a large chunk of
> the boot-up sequence is a big long quiescent state. This in turn causes
> RCU to prematurely end grace periods during this time.
>
> This patch changes the rcutree.c and rcuclassic.c rcu_check_callbacks()
> function to ignore the idle tasks as a quiescent state until the
> system_state is no longer SYSTEM_BOOTING. After this point, the idle
> task really does represent a quiescent state.
>
> In addition, this patch takes Nick Piggin's suggestion to make the
> system_state global variable be __read_mostly.
>
> Located-by: Vegard Nossum <vegard.nossum@...il.com>
> Tested-by: Vegard Nossum <vegard.nossum@...il.com>
> Signed-off-by: Paul E. McKenney <paulmck@...ux.vnet.ibm.com>
> ---
>
> init/main.c | 2 +-
> kernel/rcuclassic.c | 4 ++--
> kernel/rcutree.c | 4 ++--
> 3 files changed, 5 insertions(+), 5 deletions(-)
Applied to tip:core/urgent, thanks Paul!
Ingo
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists