Re: [PATCH/RFC 1/5] [PATCH] sched: merge cpu_to_core_group functions

Heiko Carstens
2010-08-31T08:24:13Z

On Fri, Aug 13, 2010 at 02:11:54PM -0700, Suresh Siddha wrote:
> On Thu, 2010-08-12 at 10:25 -0700, Heiko Carstens wrote:
> > diff -urpN linux-2.6/kernel/sched.c linux-2.6-patched/kernel/sched.c
> > --- linux-2.6/kernel/sched.c 2010-08-11 13:47:16.000000000 +0200
> > +++ linux-2.6-patched/kernel/sched.c 2010-08-11 13:47:22.000000000 +0200
> > @@ -6546,31 +6546,23 @@ cpu_to_cpu_group(int cpu, const struct c
> > #ifdef CONFIG_SCHED_MC
> > static DEFINE_PER_CPU(struct static_sched_domain, core_domains);
> > static DEFINE_PER_CPU(struct static_sched_group, sched_group_core);
> > -#endif /* CONFIG_SCHED_MC */
> >
> > -#if defined(CONFIG_SCHED_MC) && defined(CONFIG_SCHED_SMT)
> > static int
> > cpu_to_core_group(int cpu, const struct cpumask *cpu_map,
> > struct sched_group **sg, struct cpumask *mask)
> > {
> > int group;
> > -
> > +#ifdef CONFIG_SCHED_SMT
> > cpumask_and(mask, topology_thread_cpumask(cpu), cpu_map);
> > group = cpumask_first(mask);
> > +#else
> > + group = cpu;
> > +#endif
> > if (sg)
> > *sg = &per_cpu(sched_group_core, group).sg;
> > return group;
> > }
> > -#elif defined(CONFIG_SCHED_MC)
> > -static int
> > -cpu_to_core_group(int cpu, const struct cpumask *cpu_map,
> > - struct sched_group **sg, struct cpumask *unused)
> > -{
> > - if (sg)
> > - *sg = &per_cpu(sched_group_core, cpu).sg;
> > - return cpu;
> > -}
> > -#endif
> > +#endif /* CONFIG_SCHED_MC */
> >
> > static DEFINE_PER_CPU(struct static_sched_domain, phys_domains);
> > static DEFINE_PER_CPU(struct static_sched_group, sched_group_phys);
>
> Reason why this code was structured like this was because of the
> feedback from Andrew Morton. http://lkml.org/lkml/2006/1/27/308

Well, if I wouldn't merge this then the upcoming cpu_to_book_group
function would just be horribly long and unreadable. I think merging
this so it looks the same like cpu_to_phys_group is the right thing
to do.
If I wouldn't do that then the cpu_to_book_group function would just
be a real big mess instead of quite simple function.