Re: [PATCH 01/11] sched, cpuset: Add regenerate_sched_domains function to rebuild all sched domains

From: Tim Chen
Date: Mon Aug 22 2016 - 15:52:05 EST


On Mon, 2016-08-22 at 14:52 +0100, Morten Rasmussen wrote:
> On Thu, Aug 18, 2016 at 03:36:42PM -0700, Srinivas Pandruvada wrote:
> >
> > From: Tim Chen <tim.c.chen@xxxxxxxxxxxxxxx>
> >
> > The current rebuild_sched_domains will only rebuild the sched domains
> > unless the cpumask changes.ÂÂHowever, in some scenarios when the
> > topology flag value changes, it will not rebuild the sched domain.
> >
> > We create a regenerate_sched_domains function that will always
> > rebuild all the sched domains to take care of this scenario.
> [...]
>
> >
> > --- a/kernel/sched/core.c
> > +++ b/kernel/sched/core.c
> > @@ -7081,7 +7082,7 @@ void partition_sched_domains(int ndoms_new, cpumask_var_t doms_new[],
> > Â unregister_sched_domain_sysctl();
> > Â
> > Â /* Let architecture update cpu core mappings. */
> > - new_topology = arch_update_cpu_topology();
> > + new_topology = arch_update_cpu_topology() | need_domain_rebuild;
> You can force rebuild_sched_domains() to rebuild the sched_domain
> hierarchy by just implementing arch_update_cpu_topology(). Make it
> return 1 when you want the hierarchy to be updated.
>
> Implementing another forcing mechanism seems redundant. I must be
> missing something?

Sure, I'll take a look at using arch_update_cpu_topology.Â

Thanks.

Tim