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/psi.h> 38 #include <linux/ptrace_api.h> 39 #include <linux/sched_clock.h> 40 #include <linux/security.h> 41 #include <linux/spinlock_api.h> 42 #include <linux/swait_api.h> 43 #include <linux/timex.h> 44 #include <linux/utsname.h> 45 #include <linux/wait_api.h> 46 #include <linux/workqueue_api.h> 47 48 #include <uapi/linux/prctl.h> 49 #include <uapi/linux/sched/types.h> 50 51 #include <asm/switch_to.h> 52 53 #include "sched.h" 54 #include "sched-pelt.h" 55 #include "stats.h" 56 #include "autogroup.h" 57 58 #include "clock.c" 59 60 #ifdef CONFIG_CGROUP_CPUACCT 61 # include "cpuacct.c" 62 #endif 63 64 #ifdef CONFIG_CPU_FREQ 65 # include "cpufreq.c" 66 #endif 67 68 #ifdef CONFIG_CPU_FREQ_GOV_SCHEDUTIL 69 # include "cpufreq_schedutil.c" 70 #endif 71 72 #ifdef CONFIG_SCHED_DEBUG 73 # include "debug.c" 74 #endif 75 76 #ifdef CONFIG_SCHEDSTATS 77 # include "stats.c" 78 #endif 79 80 #include "loadavg.c" 81 #include "completion.c" 82 #include "swait.c" 83 #include "wait_bit.c" 84 #include "wait.c" 85 86 #ifdef CONFIG_SMP 87 # include "cpupri.c" 88 # include "stop_task.c" 89 # include "topology.c" 90 #endif 91 92 #ifdef CONFIG_SCHED_CORE 93 # include "core_sched.c" 94 #endif 95 96 #ifdef CONFIG_PSI 97 # include "psi.c" 98 #endif 99 100 #ifdef CONFIG_MEMBARRIER 101 # include "membarrier.c" 102 #endif 103 104 #ifdef CONFIG_CPU_ISOLATION 105 # include "isolation.c" 106 #endif 107 108 #ifdef CONFIG_SCHED_AUTOGROUP 109 # include "autogroup.c" 110 #endif 111