On Thu, Feb 10, 2022 at 01:40:28PM +0800, Zhen Ni wrote: > move cfs_bandwidth_slice sysctls to fair.c and use the > new register_sysctl_init() to register the sysctl interface. > > Signed-off-by: Zhen Ni <nizhen@xxxxxxxxxxxxx> > --- Your description of what has changed in your v2 should go here. If a v3, then your v2 notes and v3 notes should be here as well. > include/linux/sched/sysctl.h | 4 ---- > kernel/sched/fair.c | 25 +++++++++++++++++++++++-- > kernel/sysctl.c | 10 ---------- > 3 files changed, 23 insertions(+), 16 deletions(-) > > diff --git a/include/linux/sched/sysctl.h b/include/linux/sched/sysctl.h > index c19dd5a2c05c..d416d8f45186 100644 > --- a/include/linux/sched/sysctl.h > +++ b/include/linux/sched/sysctl.h > @@ -41,10 +41,6 @@ extern unsigned int sysctl_sched_uclamp_util_max; > extern unsigned int sysctl_sched_uclamp_util_min_rt_default; > #endif > > -#ifdef CONFIG_CFS_BANDWIDTH > -extern unsigned int sysctl_sched_cfs_bandwidth_slice; > -#endif > - > #ifdef CONFIG_SCHED_AUTOGROUP > extern unsigned int sysctl_sched_autogroup_enabled; > #endif > diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c > index 5146163bfabb..354ebf938567 100644 > --- a/kernel/sched/fair.c > +++ b/kernel/sched/fair.c > @@ -141,8 +141,26 @@ int __weak arch_asym_cpu_priority(int cpu) > * > * (default: 5 msec, units: microseconds) > */ > -unsigned int sysctl_sched_cfs_bandwidth_slice = 5000UL; > -#endif > +static unsigned int sysctl_sched_cfs_bandwidth_slice = 5000UL; > +#ifdef CONFIG_SYSCTL > +static struct ctl_table sched_cfs_bandwidth_sysctls[] = { > + { > + .procname = "sched_cfs_bandwidth_slice_us", > + .data = &sysctl_sched_cfs_bandwidth_slice, > + .maxlen = sizeof(unsigned int), > + .mode = 0644, > + .proc_handler = proc_dointvec_minmax, > + .extra1 = SYSCTL_ONE, > + }, > + {} > +}; > + > +static void __init sched_cfs_bandwidth_sysctl_init(void) > +{ > + register_sysctl_init("kernel", sched_cfs_bandwidth_sysctls); > +} > +#endif /* CONFIG_SYSCTL */ Maybe an #else which then adds a no-op sched_cfs_bandwidth_sysctl_init > +#endif /* CONFIG_CFS_BANDWIDTH */ Likewise, if disabled, then have a no-op sched_cfs_bandwidth_sysctl_init() > static inline void update_load_add(struct load_weight *lw, unsigned long inc) > { > @@ -207,6 +225,9 @@ static void update_sysctl(void) > void __init sched_init_granularity(void) > { > update_sysctl(); > +#if defined(CONFIG_CFS_BANDWIDTH) && defined(CONFIG_SYSCTL) > + sched_cfs_bandwidth_sysctl_init(); > +#endif Then you can get remove the #ifdef mess from this code. But this is a style issue nothing major. Luis