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/mm.h> 18 #include <linux/sched/rseq_api.h> 19 #include <linux/sched/task_stack.h> 20 21 #include <linux/cpufreq.h> 22 #include <linux/cpumask_api.h> 23 #include <linux/cpuset.h> 24 #include <linux/ctype.h> 25 #include <linux/debugfs.h> 26 #include <linux/energy_model.h> 27 #include <linux/hashtable_api.h> 28 #include <linux/irq.h> 29 #include <linux/kobject_api.h> 30 #include <linux/membarrier.h> 31 #include <linux/mempolicy.h> 32 #include <linux/nmi.h> 33 #include <linux/nospec.h> 34 #include <linux/proc_fs.h> 35 #include <linux/psi.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