Subject: Re: [PATCH] fix boot-time hangs from PREEMPT_RCU and NO_HZ

From: Andrew Morton <[email-masked]>
Date: Thu, 28 Feb 2008 21:01:40 -0800

On Thu, 28 Feb 2008 20:43:29 -0800 "Paul E. McKenney" <[email-masked]> wrote:

> This is a repost of http://lkml.org/lkml/2008/2/2/11.  It is needed in
> 2.6.25 in order to prevent boot-time hangs when running with PREEMPT_RCU
> and NO_HZ.
> 
> Preemptible RCU can get stuck if a CPU goes idle and NO_HZ is set. The
> idle CPU will not progress the RCU through its grace period, so that
> any subsequent synchronize_rcu() invocations can hang until such time
> as a process starts running on the idle CPU.  If no such process runs,
> subsequent synchronize_rcu() invocations will hang indefinitely, in turn
> hanging the system.  Without this patch, one of Steve Rostedt's boxes
> hangs on boot when PREEMPT_RCU and NO_HZ are set. That same box boots
> fine with this patch.
> 
> Note: This patch came directly from the -rt patch where it has been tested
> for several months.
> 
> Andrew, could you please apply this?

I already have it, via git-sched.  Presumably Ingo has it lined up for the
next sched-related merge.