Re: [tip:sched/core] sched: Rework sched_domain topology definition

From: James Hogan
Date: Fri May 16 2014 - 05:57:46 EST


Hi Vincent,

On 8 May 2014 11:43, tip-bot for Vincent Guittot <tipbot@xxxxxxxxx> wrote:
> Commit-ID: 143e1e28cb40bed836b0a06567208bd7347c9672
> Gitweb: http://git.kernel.org/tip/143e1e28cb40bed836b0a06567208bd7347c9672
> Author: Vincent Guittot <vincent.guittot@xxxxxxxxxx>
> AuthorDate: Fri, 11 Apr 2014 11:44:37 +0200
> Committer: Ingo Molnar <mingo@xxxxxxxxxx>
> CommitDate: Wed, 7 May 2014 13:33:49 +0200
>
> sched: Rework sched_domain topology definition
>
> We replace the old way to configure the scheduler topology with a new method
> which enables a platform to declare additionnal level (if needed).
>
> We still have a default topology table definition that can be used by platform
> that don't want more level than the SMT, MC, CPU and NUMA ones. This table can
> be overwritten by an arch which either wants to add new level where a load
> balance make sense like BOOK or powergating level or wants to change the flags
> configuration of some levels.
>
> For each level, we need a function pointer that returns cpumask for each cpu,
> a function pointer that returns the flags for the level and a name. Only flags
> that describe topology, can be set by an architecture. The current topology
> flags are:
>
> SD_SHARE_CPUPOWER
> SD_SHARE_PKG_RESOURCES
> SD_NUMA
> SD_ASYM_PACKING
>
> Then, each level must be a subset on the next one. The build sequence of the
> sched_domain will take care of removing useless levels like those with 1 CPU
> and those with the same CPU span and no more relevant information for
> load balancing than its children.
>
> Signed-off-by: Vincent Guittot <vincent.guittot@xxxxxxxxxx>
> Tested-by: Dietmar Eggemann <dietmar.eggemann@xxxxxxx>
> Reviewed-by: Preeti U Murthy <preeti@xxxxxxxxxxxxxxxxxx>
> Reviewed-by: Dietmar Eggemann <dietmar.eggemann@xxxxxxx>
> Signed-off-by: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
> Cc: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
> Cc: Benjamin Herrenschmidt <benh@xxxxxxxxxxxxxxxxxxx>
> Cc: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
> Cc: Chris Metcalf <cmetcalf@xxxxxxxxxx>
> Cc: Christoph Lameter <cl@xxxxxxxxx>
> Cc: David S. Miller <davem@xxxxxxxxxxxxx>
> Cc: Fenghua Yu <fenghua.yu@xxxxxxxxx>
> Cc: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
> Cc: Hanjun Guo <hanjun.guo@xxxxxxxxxx>
> Cc: Heiko Carstens <heiko.carstens@xxxxxxxxxx>
> Cc: Jason Low <jason.low2@xxxxxx>
> Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
> Cc: Martin Schwidefsky <schwidefsky@xxxxxxxxxx>
> Cc: Tony Luck <tony.luck@xxxxxxxxx>
> Cc: linux390@xxxxxxxxxx
> Cc: linux-ia64@xxxxxxxxxxxxxxx
> Cc: linux-s390@xxxxxxxxxxxxxxx
> Link: http://lkml.kernel.org/r/1397209481-28542-2-git-send-email-vincent.guittot@xxxxxxxxxx
> Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
> ---
> arch/ia64/include/asm/topology.h | 24 ----
> arch/s390/include/asm/topology.h | 2 -
> arch/tile/include/asm/topology.h | 33 ------
> include/linux/sched.h | 53 +++++++++
> include/linux/topology.h | 128 +++------------------
> kernel/sched/core.c | 233 ++++++++++++++++++++-------------------
> 6 files changed, 186 insertions(+), 287 deletions(-)


> diff --git a/include/linux/sched.h b/include/linux/sched.h
> index 2a4298f..656b035 100644
> --- a/include/linux/sched.h
> +++ b/include/linux/sched.h
> @@ -985,6 +1006,38 @@ void free_sched_domains(cpumask_var_t doms[], unsigned int ndoms);
>
> bool cpus_share_cache(int this_cpu, int that_cpu);
>
> +typedef const struct cpumask *(*sched_domain_mask_f)(int cpu);
> +typedef const int (*sched_domain_flags_f)(void);

I just noticed, since May 9th, linux-next (ARCH=metag, gcc 4.2.4, with
meta2_smp_defconfig) is showing loads of warnings due to the above
line:

include/linux/sched.h +1010 : warning: type qualifiers ignored on
function return type

Looks to me that the const serves no purpose in this context and could
be removed.

Cheers
James
--
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/