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