1// SPDX-License-Identifier: GPL-2.0-only
2/*
3 * These are various utility functions of the scheduler,
4 * built in a single compilation unit for build efficiency reasons.
5 *
6 * ( Incidentally, the size of the compilation unit is roughly
7 * comparable to core.c, fair.c, smp.c and policy.c, the other
8 * big compilation units. This helps balance build time, while
9 * coalescing source files to amortize header inclusion
10 * cost. )
11 */
12#include <linux/sched/clock.h>
13#include <linux/sched/cputime.h>
14#include <linux/sched/debug.h>
15#include <linux/sched/isolation.h>
16#include <linux/sched/loadavg.h>
17#include <linux/sched/nohz.h>
18#include <linux/sched/mm.h>
19#include <linux/sched/rseq_api.h>
20#include <linux/sched/task_stack.h>
21
22#include <linux/cpufreq.h>
23#include <linux/cpumask_api.h>
24#include <linux/cpuset.h>
25#include <linux/ctype.h>
26#include <linux/debugfs.h>
27#include <linux/energy_model.h>
28#include <linux/hashtable_api.h>
29#include <linux/irq.h>
30#include <linux/kobject_api.h>
31#include <linux/membarrier.h>
32#include <linux/mempolicy.h>
33#include <linux/nmi.h>
34#include <linux/nospec.h>
35#include <linux/proc_fs.h>
36#include <linux/psi.h>
37#include <linux/ptrace_api.h>
38#include <linux/sched_clock.h>
39#include <linux/security.h>
40#include <linux/spinlock_api.h>
41#include <linux/swait_api.h>
42#include <linux/timex.h>
43#include <linux/utsname.h>
44#include <linux/wait_api.h>
45#include <linux/workqueue_api.h>
46
47#include <uapi/linux/prctl.h>
48#include <uapi/linux/sched/types.h>
49
50#include <asm/switch_to.h>
51
52#include "sched.h"
53#include "sched-pelt.h"
54#include "stats.h"
55#include "autogroup.h"
56
57#include "clock.c"
58
59#ifdef CONFIG_CGROUP_CPUACCT
60# include "cpuacct.c"
61#endif
62
63#ifdef CONFIG_CPU_FREQ
64# include "cpufreq.c"
65#endif
66
67#ifdef CONFIG_CPU_FREQ_GOV_SCHEDUTIL
68# include "cpufreq_schedutil.c"
69#endif
70
71#ifdef CONFIG_SCHED_DEBUG
72# include "debug.c"
73#endif
74
75#ifdef CONFIG_SCHEDSTATS
76# include "stats.c"
77#endif
78
79#include "loadavg.c"
80#include "completion.c"
81#include "swait.c"
82#include "wait_bit.c"
83#include "wait.c"
84
85#ifdef CONFIG_SMP
86# include "cpupri.c"
87# include "stop_task.c"
88# include "topology.c"
89#endif
90
91#ifdef CONFIG_SCHED_CORE
92# include "core_sched.c"
93#endif
94
95#ifdef CONFIG_PSI
96# include "psi.c"
97#endif
98
99#ifdef CONFIG_MEMBARRIER
100# include "membarrier.c"
101#endif
102
103#ifdef CONFIG_CPU_ISOLATION
104# include "isolation.c"
105#endif
106
107#ifdef CONFIG_SCHED_AUTOGROUP
108# include "autogroup.c"
109#endif
110

source code of linux/kernel/sched/build_utility.c