Skip to content

RFC Rewrite sched_domain/sched_group creation

Peter Zijlstra lkml 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 RFC Latest14 patches 8 repliesIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/14sched: Remove obsolete arch_ prefixeskernel/sched.c+7 -70 replies
2/14sched: Simplify cpu_power initializationkernel/sched.c+5 -392 replies
3/14sched: Simplify build_sched_groupskernel/sched.c+16 -360 replies
4/14sched: Change NODE sched_domain group creationkernel/sched.c+33 -1980 replies
5/14sched: Clean up some ALLNODES codekernel/sched.c+4 -70 replies
6/14Simplify group creationkernel/sched.c+5 -190 replies
7/14sched: Simplify finding the lowest sched_domainkernel/sched.c+13 -100 replies
8/14sched: Simplify sched_groups_power initializationkernel/sched.c+5 -340 replies
9/14sched: Dynamically allocate sched_domain/sched_group data-structuresinclude/linux/sched.h kernel/sched.c kernel/sched_fair.c+214 -2874 replies
10/14sched: Simplify the free path somekernel/sched.c+5 -60 replies
11/14sched: Reduce some allocation pressureinclude/linux/sched.h+8 -00 replies
12/14sched: Simplify NODE/ALLNODES domain creationkernel/sched.c+22 -180 replies
13/14sched: Remove nodemask allocationkernel/sched.c+3 -110 replies
14/14sched: Remove some dead codeinclude/linux/sched.h kernel/sched.c+0 -220 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.

Read the v1 thread

Cover letter [RFC][PATCH 00/14] Rewrite sched_domain/sched_group creation

So I got annoyed with the whole sched_domain/sched_group creation mess again and decided to actuall do something about it. See here ;-)

Its not completely done yet, but much of the ground-work is there.

The final goal is to be able to have a simple way to dynamically specify the architecture topoplogy and have the generic code in charge of building the data structures. The architecture would need to provide a function that maps a cpu to a cpumask and a function that initializes the sched_domain (flags etc.), this would replace the now still hard-coded __build_*_sched_domain() calls in __build_sched_domains().

With that we can also kill the current NODE and ALLNODES mess and generate appropriate masks from say the ACPI SLIT table by grouping CPUs on their node distance.

This would allow us to kill the horrid mess in x86's cpu_coregroup_mask() and properly support the AMD magnycours stuff.

Anyway, not quite there yet.. patches build and boot on a 2*6*2 wsm box.

---
 include/linux/sched.h |   19 +-
 kernel/sched.c        |  817 +++++++++++++------------------------------------
 kernel/sched_fair.c   |   32 ++-
 3 files changed, 258 insertions(+), 610 deletions(-)