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 #include "debug.c" 72 73 #ifdef CONFIG_SCHEDSTATS 74 # include "stats.c" 75 #endif 76 77 #include "loadavg.c" 78 #include "completion.c" 79 #include "swait.c" 80 #include "wait_bit.c" 81 #include "wait.c" 82 83 #ifdef CONFIG_SMP 84 # include "cpupri.c" 85 # include "stop_task.c" 86 # include "topology.c" 87 #endif 88 89 #ifdef CONFIG_SCHED_CORE 90 # include "core_sched.c" 91 #endif 92 93 #ifdef CONFIG_PSI 94 # include "psi.c" 95 #endif 96 97 #ifdef CONFIG_MEMBARRIER 98 # include "membarrier.c" 99 #endif 100 101 #ifdef CONFIG_CPU_ISOLATION 102 # include "isolation.c" 103 #endif 104 105 #ifdef CONFIG_SCHED_AUTOGROUP 106 # include "autogroup.c" 107 #endif 108