xref: /OK3568_Linux_fs/kernel/include/linux/sched/sysctl.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0 */
2*4882a593Smuzhiyun #ifndef _LINUX_SCHED_SYSCTL_H
3*4882a593Smuzhiyun #define _LINUX_SCHED_SYSCTL_H
4*4882a593Smuzhiyun 
5*4882a593Smuzhiyun #include <linux/types.h>
6*4882a593Smuzhiyun 
7*4882a593Smuzhiyun struct ctl_table;
8*4882a593Smuzhiyun 
9*4882a593Smuzhiyun #ifdef CONFIG_DETECT_HUNG_TASK
10*4882a593Smuzhiyun 
11*4882a593Smuzhiyun #ifdef CONFIG_SMP
12*4882a593Smuzhiyun extern unsigned int sysctl_hung_task_all_cpu_backtrace;
13*4882a593Smuzhiyun #else
14*4882a593Smuzhiyun #define sysctl_hung_task_all_cpu_backtrace 0
15*4882a593Smuzhiyun #endif /* CONFIG_SMP */
16*4882a593Smuzhiyun 
17*4882a593Smuzhiyun extern int	     sysctl_hung_task_check_count;
18*4882a593Smuzhiyun extern unsigned int  sysctl_hung_task_panic;
19*4882a593Smuzhiyun extern unsigned long sysctl_hung_task_timeout_secs;
20*4882a593Smuzhiyun extern unsigned long sysctl_hung_task_check_interval_secs;
21*4882a593Smuzhiyun extern int sysctl_hung_task_warnings;
22*4882a593Smuzhiyun int proc_dohung_task_timeout_secs(struct ctl_table *table, int write,
23*4882a593Smuzhiyun 		void *buffer, size_t *lenp, loff_t *ppos);
24*4882a593Smuzhiyun #else
25*4882a593Smuzhiyun /* Avoid need for ifdefs elsewhere in the code */
26*4882a593Smuzhiyun enum { sysctl_hung_task_timeout_secs = 0 };
27*4882a593Smuzhiyun #endif
28*4882a593Smuzhiyun 
29*4882a593Smuzhiyun extern unsigned int sysctl_sched_latency;
30*4882a593Smuzhiyun extern unsigned int sysctl_sched_min_granularity;
31*4882a593Smuzhiyun extern unsigned int sysctl_sched_wakeup_granularity;
32*4882a593Smuzhiyun extern unsigned int sysctl_sched_child_runs_first;
33*4882a593Smuzhiyun 
34*4882a593Smuzhiyun enum sched_tunable_scaling {
35*4882a593Smuzhiyun 	SCHED_TUNABLESCALING_NONE,
36*4882a593Smuzhiyun 	SCHED_TUNABLESCALING_LOG,
37*4882a593Smuzhiyun 	SCHED_TUNABLESCALING_LINEAR,
38*4882a593Smuzhiyun 	SCHED_TUNABLESCALING_END,
39*4882a593Smuzhiyun };
40*4882a593Smuzhiyun extern enum sched_tunable_scaling sysctl_sched_tunable_scaling;
41*4882a593Smuzhiyun 
42*4882a593Smuzhiyun extern unsigned int sysctl_numa_balancing_scan_delay;
43*4882a593Smuzhiyun extern unsigned int sysctl_numa_balancing_scan_period_min;
44*4882a593Smuzhiyun extern unsigned int sysctl_numa_balancing_scan_period_max;
45*4882a593Smuzhiyun extern unsigned int sysctl_numa_balancing_scan_size;
46*4882a593Smuzhiyun 
47*4882a593Smuzhiyun #ifdef CONFIG_SCHED_DEBUG
48*4882a593Smuzhiyun extern __read_mostly unsigned int sysctl_sched_migration_cost;
49*4882a593Smuzhiyun extern __read_mostly unsigned int sysctl_sched_nr_migrate;
50*4882a593Smuzhiyun extern int sysctl_sched_pelt_period;
51*4882a593Smuzhiyun 
52*4882a593Smuzhiyun int sched_proc_update_handler(struct ctl_table *table, int write,
53*4882a593Smuzhiyun 		void *buffer, size_t *length, loff_t *ppos);
54*4882a593Smuzhiyun int sched_pelt_period_update_handler(struct ctl_table *table, int write,
55*4882a593Smuzhiyun 				     void *buffer, size_t *lenp, loff_t *ppos);
56*4882a593Smuzhiyun #endif
57*4882a593Smuzhiyun 
58*4882a593Smuzhiyun /*
59*4882a593Smuzhiyun  *  control realtime throttling:
60*4882a593Smuzhiyun  *
61*4882a593Smuzhiyun  *  /proc/sys/kernel/sched_rt_period_us
62*4882a593Smuzhiyun  *  /proc/sys/kernel/sched_rt_runtime_us
63*4882a593Smuzhiyun  */
64*4882a593Smuzhiyun extern unsigned int sysctl_sched_rt_period;
65*4882a593Smuzhiyun extern int sysctl_sched_rt_runtime;
66*4882a593Smuzhiyun 
67*4882a593Smuzhiyun extern unsigned int sysctl_sched_dl_period_max;
68*4882a593Smuzhiyun extern unsigned int sysctl_sched_dl_period_min;
69*4882a593Smuzhiyun 
70*4882a593Smuzhiyun #ifdef CONFIG_UCLAMP_TASK
71*4882a593Smuzhiyun extern unsigned int sysctl_sched_uclamp_util_min;
72*4882a593Smuzhiyun extern unsigned int sysctl_sched_uclamp_util_max;
73*4882a593Smuzhiyun extern unsigned int sysctl_sched_uclamp_util_min_rt_default;
74*4882a593Smuzhiyun #endif
75*4882a593Smuzhiyun 
76*4882a593Smuzhiyun #ifdef CONFIG_CFS_BANDWIDTH
77*4882a593Smuzhiyun extern unsigned int sysctl_sched_cfs_bandwidth_slice;
78*4882a593Smuzhiyun #endif
79*4882a593Smuzhiyun 
80*4882a593Smuzhiyun #ifdef CONFIG_SCHED_AUTOGROUP
81*4882a593Smuzhiyun extern unsigned int sysctl_sched_autogroup_enabled;
82*4882a593Smuzhiyun #endif
83*4882a593Smuzhiyun 
84*4882a593Smuzhiyun extern int sysctl_sched_rr_timeslice;
85*4882a593Smuzhiyun extern int sched_rr_timeslice;
86*4882a593Smuzhiyun 
87*4882a593Smuzhiyun int sched_rr_handler(struct ctl_table *table, int write, void *buffer,
88*4882a593Smuzhiyun 		size_t *lenp, loff_t *ppos);
89*4882a593Smuzhiyun int sched_rt_handler(struct ctl_table *table, int write, void *buffer,
90*4882a593Smuzhiyun 		size_t *lenp, loff_t *ppos);
91*4882a593Smuzhiyun int sysctl_sched_uclamp_handler(struct ctl_table *table, int write,
92*4882a593Smuzhiyun 		void *buffer, size_t *lenp, loff_t *ppos);
93*4882a593Smuzhiyun int sysctl_numa_balancing(struct ctl_table *table, int write, void *buffer,
94*4882a593Smuzhiyun 		size_t *lenp, loff_t *ppos);
95*4882a593Smuzhiyun int sysctl_schedstats(struct ctl_table *table, int write, void *buffer,
96*4882a593Smuzhiyun 		size_t *lenp, loff_t *ppos);
97*4882a593Smuzhiyun 
98*4882a593Smuzhiyun #ifdef CONFIG_SMP
99*4882a593Smuzhiyun extern unsigned int sysctl_sched_pelt_multiplier;
100*4882a593Smuzhiyun 
101*4882a593Smuzhiyun int sched_pelt_multiplier(struct ctl_table *table, int write, void *buffer,
102*4882a593Smuzhiyun 		size_t *lenp, loff_t *ppos);
103*4882a593Smuzhiyun #endif
104*4882a593Smuzhiyun 
105*4882a593Smuzhiyun #if defined(CONFIG_ENERGY_MODEL) && defined(CONFIG_CPU_FREQ_GOV_SCHEDUTIL)
106*4882a593Smuzhiyun extern unsigned int sysctl_sched_energy_aware;
107*4882a593Smuzhiyun int sched_energy_aware_handler(struct ctl_table *table, int write,
108*4882a593Smuzhiyun 		void *buffer, size_t *lenp, loff_t *ppos);
109*4882a593Smuzhiyun #endif
110*4882a593Smuzhiyun 
111*4882a593Smuzhiyun #endif /* _LINUX_SCHED_SYSCTL_H */
112