sched/headers: Introduce kernel/sched/build_utility.c and build multiple .c files...
authorIngo Molnar <mingo@kernel.org>
Tue, 22 Feb 2022 12:23:24 +0000 (13:23 +0100)
committerIngo Molnar <mingo@kernel.org>
Wed, 23 Feb 2022 09:58:33 +0000 (10:58 +0100)
commit801c141955108fb7cf1244dda76e6de8b16fd3ae
treed58167bbd5b0624095721d3e2426b28c2af140a7
parentfbed5664b73830dcb1a19af4f7f1f1b424f54609
sched/headers: Introduce kernel/sched/build_utility.c and build multiple .c files there

Collect all utility functionality source code files into a single kernel/sched/build_utility.c file,
via #include-ing the .c files:

    kernel/sched/clock.c
    kernel/sched/completion.c
    kernel/sched/loadavg.c
    kernel/sched/swait.c
    kernel/sched/wait_bit.c
    kernel/sched/wait.c

CONFIG_CPU_FREQ:
    kernel/sched/cpufreq.c

CONFIG_CPU_FREQ_GOV_SCHEDUTIL:
    kernel/sched/cpufreq_schedutil.c

CONFIG_CGROUP_CPUACCT:
    kernel/sched/cpuacct.c

CONFIG_SCHED_DEBUG:
    kernel/sched/debug.c

CONFIG_SCHEDSTATS:
    kernel/sched/stats.c

CONFIG_SMP:
   kernel/sched/cpupri.c
   kernel/sched/stop_task.c
   kernel/sched/topology.c

CONFIG_SCHED_CORE:
   kernel/sched/core_sched.c

CONFIG_PSI:
   kernel/sched/psi.c

CONFIG_MEMBARRIER:
   kernel/sched/membarrier.c

CONFIG_CPU_ISOLATION:
   kernel/sched/isolation.c

CONFIG_SCHED_AUTOGROUP:
   kernel/sched/autogroup.c

The goal is to amortize the 60+ KLOC header bloat from over a dozen build units into
a single build unit.

The build time of build_utility.c also roughly matches the build time of core.c and
fair.c - allowing better load-balancing of scheduler-only rebuilds.

Signed-off-by: Ingo Molnar <mingo@kernel.org>
Reviewed-by: Peter Zijlstra <peterz@infradead.org>
22 files changed:
kernel/sched/Makefile
kernel/sched/autogroup.c
kernel/sched/build_utility.c [new file with mode: 0644]
kernel/sched/clock.c
kernel/sched/completion.c
kernel/sched/core_sched.c
kernel/sched/cpuacct.c
kernel/sched/cpufreq.c
kernel/sched/cpufreq_schedutil.c
kernel/sched/cpupri.c
kernel/sched/debug.c
kernel/sched/isolation.c
kernel/sched/loadavg.c
kernel/sched/membarrier.c
kernel/sched/psi.c
kernel/sched/sched.h
kernel/sched/stats.c
kernel/sched/stop_task.c
kernel/sched/swait.c
kernel/sched/topology.c
kernel/sched/wait.c
kernel/sched/wait_bit.c