Re: [sched/get_online_cpus] INFO: task swapper/0:1 blocked for morethan 120 seconds.

From: Peter Zijlstra
Date: Mon Nov 11 2013 - 11:20:48 EST


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 majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/