Messages in this thread | | | Date | Tue, 24 Feb 2009 06:50:35 -0800 | From | "Paul E. McKenney" <> | Subject | Re: [PATCH] v2 Teach RCU that idle task is not quiscent state at boot |
| |
On Mon, Feb 23, 2009 at 09:08:54PM -0800, Paul E. McKenney wrote: > On Tue, Feb 24, 2009 at 03:02:56PM +1100, Nick Piggin wrote: > > On Tuesday 24 February 2009 07:43:32 Paul E. McKenney wrote: > > > > > @@ -80,6 +81,10 @@ void wakeme_after_rcu(struct rcu_head *head) > > > void synchronize_rcu(void) > > > { > > > struct rcu_synchronize rcu; > > > + > > > + if (num_online_cpus() == 1) > > > + return; /* If UP, synchronize_rcu() is a grace period! */ > > > + > > > > Nice patch... May I just suggest a comment to say that this is > > also a correctness requirement due to the grace period holdoff > > for early boot? > > Excellent point! If Ingo reports that this actually fixes the hang that > he saw, I will add such a comment. > > (And glad you like the patch!)
Gah!!! I forgot about preemptable RCU, which the previous patch breaks completely on single-CPU systems.
A fix is in the works.
Thanx, Paul
| |