Re: [PATCH 03/13] rcu: Exclude all potential timekeepers fromsysidle detection

From: Frederic Weisbecker
Date: Wed Dec 18 2013 - 11:24:34 EST


On Wed, Dec 18, 2013 at 12:43:18PM +0100, Peter Zijlstra wrote:
> On Wed, Dec 18, 2013 at 12:49:15AM +0100, Frederic Weisbecker wrote:
> > That's to start simple as CPU 0 can't be offlined.
>
> Yes it can, see CONFIG_BOOTPARAM_HOTPLUG_CPU0

Yeah it can but the tick hotplug callback prevent that to happen on nohz full.
You can check out tick_nohz_cpu_down_callback() for details.

I agree that rejecting CPU_DOWN_PREPARE requests is propably not the prettiest
thing ever but that's the only solution that we have now.

There must _always_ be a timekeeper to maintain timekeeping duty as long
as there are full dynticks CPUs around. So one of these potential timekeepers has
to stay online. And CPU 0 is quite a handy candidate since rejecting any
other CPU's offlining request may block suspend.

Now if it happens to be annoying for some reason, we can certainly change that
behaviour in the future. This will involve forcing some full dynticks CPU to
carry timekeeping but heh, if user does silly things :)
--
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/