Re: [PATCH 2/2] nohz: make nohz_full imply isolcpus

From: Mike Galbraith
Date: Fri Apr 03 2015 - 14:08:44 EST


On Fri, 2015-04-03 at 12:24 -0400, cmetcalf@xxxxxxxxxx wrote:
> From: Chris Metcalf <cmetcalf@xxxxxxxxxx>
>
> It's not clear that nohz_full is useful without isolcpus also
> set, since otherwise the scheduler has to run periodically to
> try to determine whether to steal work from other cores.
>
> Signed-off-by: Chris Metcalf <cmetcalf@xxxxxxxxxx>

Ack! nohz_full= as currently defined makes zero sense when the cpu
set (which should be spelled cpuset) remains connected to the
scheduler. Perturbation of tasks to PREVENT cpu domination is what
the scheduler does for a living. Sprinkling microsecond savers all
over the kernel is pretty silly if you don't shut down the mother lode
of perturbation.

> ---
> I am puzzled why this has not been done before, so I suspect
> there is some argument against it that I am missing, but I
> wasn't able to turn anything up by searching LKML.
>
> kernel/sched/core.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/kernel/sched/core.c b/kernel/sched/core.c
> index f0f831e8a345..275f12c608f2 100644
> --- a/kernel/sched/core.c
> +++ b/kernel/sched/core.c
> @@ -6836,6 +6836,7 @@ static int init_sched_domains(const struct
> cpumask *cpu_map)
> doms_cur = alloc_sched_domains(ndoms_cur);
> if (!doms_cur)
> doms_cur = &fallback_doms;
> + tick_nohz_full_set_cpus(cpu_isolated_map);
> cpumask_andnot(doms_cur[0], cpu_map, cpu_isolated_map);
> err = build_sched_domains(doms_cur[0], NULL);
> register_sched_domain_sysctl();
--
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/