Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

sched: move autogroup sysctls into its own file

move autogroup sysctls to autogroup.c and use the new
register_sysctl_init() to register the sysctl interface.

Signed-off-by: Zhen Ni <nizhen@uniontech.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Link: https://lkml.kernel.org/r/20220128095025.8745-1-nizhen@uniontech.com

authored by

Zhen Ni and committed by
Peter Zijlstra
c8eaf6ac 127b6429

+24 -15
-4
include/linux/sched/sysctl.h
··· 45 45 extern unsigned int sysctl_sched_cfs_bandwidth_slice; 46 46 #endif 47 47 48 - #ifdef CONFIG_SCHED_AUTOGROUP 49 - extern unsigned int sysctl_sched_autogroup_enabled; 50 - #endif 51 - 52 48 extern int sysctl_sched_rr_timeslice; 53 49 extern int sched_rr_timeslice; 54 50
+23
kernel/sched/autogroup.c
··· 9 9 static struct autogroup autogroup_default; 10 10 static atomic_t autogroup_seq_nr; 11 11 12 + #ifdef CONFIG_SYSCTL 13 + static struct ctl_table sched_autogroup_sysctls[] = { 14 + { 15 + .procname = "sched_autogroup_enabled", 16 + .data = &sysctl_sched_autogroup_enabled, 17 + .maxlen = sizeof(unsigned int), 18 + .mode = 0644, 19 + .proc_handler = proc_dointvec_minmax, 20 + .extra1 = SYSCTL_ZERO, 21 + .extra2 = SYSCTL_ONE, 22 + }, 23 + {} 24 + }; 25 + 26 + static void __init sched_autogroup_sysctl_init(void) 27 + { 28 + register_sysctl_init("kernel", sched_autogroup_sysctls); 29 + } 30 + #else 31 + #define sched_autogroup_sysctl_init() do { } while (0) 32 + #endif 33 + 12 34 void __init autogroup_init(struct task_struct *init_task) 13 35 { 14 36 autogroup_default.tg = &root_task_group; ··· 220 198 static int __init setup_autogroup(char *str) 221 199 { 222 200 sysctl_sched_autogroup_enabled = 0; 201 + sched_autogroup_sysctl_init(); 223 202 224 203 return 1; 225 204 }
+1
kernel/sched/autogroup.h
··· 27 27 static inline struct task_group * 28 28 autogroup_task_group(struct task_struct *p, struct task_group *tg) 29 29 { 30 + extern unsigned int sysctl_sched_autogroup_enabled; 30 31 int enabled = READ_ONCE(sysctl_sched_autogroup_enabled); 31 32 32 33 if (enabled && task_wants_autogroup(p, tg))
-11
kernel/sysctl.c
··· 1750 1750 .proc_handler = sysctl_sched_uclamp_handler, 1751 1751 }, 1752 1752 #endif 1753 - #ifdef CONFIG_SCHED_AUTOGROUP 1754 - { 1755 - .procname = "sched_autogroup_enabled", 1756 - .data = &sysctl_sched_autogroup_enabled, 1757 - .maxlen = sizeof(unsigned int), 1758 - .mode = 0644, 1759 - .proc_handler = proc_dointvec_minmax, 1760 - .extra1 = SYSCTL_ZERO, 1761 - .extra2 = SYSCTL_ONE, 1762 - }, 1763 - #endif 1764 1753 #ifdef CONFIG_CFS_BANDWIDTH 1765 1754 { 1766 1755 .procname = "sched_cfs_bandwidth_slice_us",