blob: 0f5ecd4d298e2acc41d87e46f31409de228b3010 [file] [log] [blame]
Ingo Molnar9ccd27c2017-02-03 21:11:09 +01001#ifndef _LINUX_SCHED_SYSCTL_H
2#define _LINUX_SCHED_SYSCTL_H
3
4#include <linux/types.h>
5
6struct ctl_table;
Clark Williamscf4aebc22013-02-07 09:46:59 -06007
8#ifdef CONFIG_DETECT_HUNG_TASK
Li Zefancd646472013-09-23 16:43:58 +08009extern int sysctl_hung_task_check_count;
Clark Williamscf4aebc22013-02-07 09:46:59 -060010extern unsigned int sysctl_hung_task_panic;
Clark Williamscf4aebc22013-02-07 09:46:59 -060011extern unsigned long sysctl_hung_task_timeout_secs;
Aaron Tomlin270750db2014-01-20 17:34:13 +000012extern int sysctl_hung_task_warnings;
Clark Williamscf4aebc22013-02-07 09:46:59 -060013extern int proc_dohung_task_timeout_secs(struct ctl_table *table, int write,
14 void __user *buffer,
15 size_t *lenp, loff_t *ppos);
16#else
17/* Avoid need for ifdefs elsewhere in the code */
18enum { sysctl_hung_task_timeout_secs = 0 };
19#endif
20
Clark Williamscf4aebc22013-02-07 09:46:59 -060021extern unsigned int sysctl_sched_latency;
22extern unsigned int sysctl_sched_min_granularity;
23extern unsigned int sysctl_sched_wakeup_granularity;
24extern unsigned int sysctl_sched_child_runs_first;
25
26enum sched_tunable_scaling {
27 SCHED_TUNABLESCALING_NONE,
28 SCHED_TUNABLESCALING_LOG,
29 SCHED_TUNABLESCALING_LINEAR,
30 SCHED_TUNABLESCALING_END,
31};
32extern enum sched_tunable_scaling sysctl_sched_tunable_scaling;
33
34extern unsigned int sysctl_numa_balancing_scan_delay;
35extern unsigned int sysctl_numa_balancing_scan_period_min;
36extern unsigned int sysctl_numa_balancing_scan_period_max;
Clark Williamscf4aebc22013-02-07 09:46:59 -060037extern unsigned int sysctl_numa_balancing_scan_size;
Clark Williamscf4aebc22013-02-07 09:46:59 -060038
39#ifdef CONFIG_SCHED_DEBUG
40extern unsigned int sysctl_sched_migration_cost;
41extern unsigned int sysctl_sched_nr_migrate;
42extern unsigned int sysctl_sched_time_avg;
Clark Williamscf4aebc22013-02-07 09:46:59 -060043
44int sched_proc_update_handler(struct ctl_table *table, int write,
45 void __user *buffer, size_t *length,
46 loff_t *ppos);
47#endif
Clark Williamsce0dbbb2013-02-07 09:47:04 -060048
49/*
50 * control realtime throttling:
51 *
52 * /proc/sys/kernel/sched_rt_period_us
53 * /proc/sys/kernel/sched_rt_runtime_us
54 */
Clark Williamscf4aebc22013-02-07 09:46:59 -060055extern unsigned int sysctl_sched_rt_period;
56extern int sysctl_sched_rt_runtime;
57
58#ifdef CONFIG_CFS_BANDWIDTH
59extern unsigned int sysctl_sched_cfs_bandwidth_slice;
60#endif
61
62#ifdef CONFIG_SCHED_AUTOGROUP
63extern unsigned int sysctl_sched_autogroup_enabled;
64#endif
65
Shile Zhang975e1552017-01-28 22:00:49 +080066extern int sysctl_sched_rr_timeslice;
Clark Williamsce0dbbb2013-02-07 09:47:04 -060067extern int sched_rr_timeslice;
68
69extern int sched_rr_handler(struct ctl_table *table, int write,
70 void __user *buffer, size_t *lenp,
71 loff_t *ppos);
72
73extern int sched_rt_handler(struct ctl_table *table, int write,
Clark Williamscf4aebc22013-02-07 09:46:59 -060074 void __user *buffer, size_t *lenp,
75 loff_t *ppos);
76
Andi Kleen54a43d52014-01-23 15:53:13 -080077extern int sysctl_numa_balancing(struct ctl_table *table, int write,
78 void __user *buffer, size_t *lenp,
79 loff_t *ppos);
80
Mel Gormancb251762016-02-05 09:08:36 +000081extern int sysctl_schedstats(struct ctl_table *table, int write,
82 void __user *buffer, size_t *lenp,
83 loff_t *ppos);
84
Ingo Molnar9ccd27c2017-02-03 21:11:09 +010085#endif /* _LINUX_SCHED_SYSCTL_H */