| 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 | #include "cpupri.c" | 
| 84 | #include "stop_task.c" | 
| 85 | |
| 86 | #include "topology.c" | 
| 87 | |
| 88 | #ifdef CONFIG_SCHED_CORE | 
| 89 | # include "core_sched.c" | 
| 90 | #endif | 
| 91 | |
| 92 | #ifdef CONFIG_PSI | 
| 93 | # include "psi.c" | 
| 94 | #endif | 
| 95 | |
| 96 | #ifdef CONFIG_MEMBARRIER | 
| 97 | # include "membarrier.c" | 
| 98 | #endif | 
| 99 | |
| 100 | #ifdef CONFIG_CPU_ISOLATION | 
| 101 | # include "isolation.c" | 
| 102 | #endif | 
| 103 | |
| 104 | #ifdef CONFIG_SCHED_AUTOGROUP | 
| 105 | # include "autogroup.c" | 
| 106 | #endif | 
| 107 | 
