On Mon, Nov 11, 2013 at 03:47:11PM +0800, Michael wang wrote: > Hi, Fengguang > > On 11/10/2013 06:16 PM, Fengguang Wu wrote: > > Greetings, > > > > I got the below dmesg and the first bad commit is > > I guess this will disappear when '!CONFIG_RCU_BOOST'... > > AFAIK, if the rsp was in boost mode, we count on smpboot-thread > 'rcu_cpu_thread_spec' to finish the callback, which will be > parked before do sync-rcu inside _cpu_down(), if that was true, > then the sync will never finish... > > May be some brainless fix like this? > > > > diff --git a/kernel/cpu.c b/kernel/cpu.c > index 63aa50d..aa24338 100644 > --- a/kernel/cpu.c > +++ b/kernel/cpu.c > @@ -306,7 +306,6 @@ static int __ref _cpu_down(unsigned int cpu, int > tasks_frozen) > __func__, cpu); > goto out_release; > } > - smpboot_park_threads(cpu); > > /* > * By now we've cleared cpu_active_mask, wait for all preempt-disabled > @@ -321,6 +320,8 @@ static int __ref _cpu_down(unsigned int cpu, int > tasks_frozen) > #endif > synchronize_rcu(); > > + smpboot_park_threads(cpu); > + > /* > * So now all preempt/rcu users must observe !cpu_active(). > */
Good thinking.. Wu did this cure stuff? -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/