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 |