On 5/9/2025 8:54 AM, Joel Granados wrote:
> Move sysctl_panic_on_rcu_stall and sysctl_max_rcu_stall_to_panic into
> the kernel/rcu subdirectory. Make these static in tree_stall.h and
> removed them as extern from panic.h as their scope is now confined into
> one file.
> 
> This is part of a greater effort to move ctl tables into their
> respective subsystems which will reduce the merge conflicts in
> kernel/sysctl.c.
> 
> Signed-off-by: Joel Granados <joel.grana...@kernel.org>

For RCU:
Reviewed-by: Joel Fernandes <joelagn...@nvidia.com>

thanks,

 - Joel


> ---
>  include/linux/panic.h   |  2 --
>  kernel/rcu/tree_stall.h | 33 +++++++++++++++++++++++++++++++--
>  kernel/sysctl.c         | 20 --------------------
>  3 files changed, 31 insertions(+), 24 deletions(-)
> 
> diff --git a/include/linux/panic.h b/include/linux/panic.h
> index 
> 2494d51707ef422dfe191e484c0676e428a2de09..33ecead16b7c1af46aac07fb10b88beed5074b18
>  100644
> --- a/include/linux/panic.h
> +++ b/include/linux/panic.h
> @@ -27,8 +27,6 @@ extern int panic_on_warn;
>  extern unsigned long panic_on_taint;
>  extern bool panic_on_taint_nousertaint;
>  
> -extern int sysctl_panic_on_rcu_stall;
> -extern int sysctl_max_rcu_stall_to_panic;
>  extern int sysctl_panic_on_stackoverflow;
>  
>  extern bool crash_kexec_post_notifiers;
> diff --git a/kernel/rcu/tree_stall.h b/kernel/rcu/tree_stall.h
> index 
> 925fcdad5dea22cfc8b0648546b78870cee485a6..5a0009b7e30b5a057856a3544f841712625699ce
>  100644
> --- a/kernel/rcu/tree_stall.h
> +++ b/kernel/rcu/tree_stall.h
> @@ -17,8 +17,37 @@
>  // Controlling CPU stall warnings, including delay calculation.
>  
>  /* panic() on RCU Stall sysctl. */
> -int sysctl_panic_on_rcu_stall __read_mostly;
> -int sysctl_max_rcu_stall_to_panic __read_mostly;
> +static int sysctl_panic_on_rcu_stall __read_mostly;
> +static int sysctl_max_rcu_stall_to_panic __read_mostly;
> +
> +static const struct ctl_table rcu_stall_sysctl_table[] = {
> +     {
> +             .procname       = "panic_on_rcu_stall",
> +             .data           = &sysctl_panic_on_rcu_stall,
> +             .maxlen         = sizeof(sysctl_panic_on_rcu_stall),
> +             .mode           = 0644,
> +             .proc_handler   = proc_dointvec_minmax,
> +             .extra1         = SYSCTL_ZERO,
> +             .extra2         = SYSCTL_ONE,
> +     },
> +     {
> +             .procname       = "max_rcu_stall_to_panic",
> +             .data           = &sysctl_max_rcu_stall_to_panic,
> +             .maxlen         = sizeof(sysctl_max_rcu_stall_to_panic),
> +             .mode           = 0644,
> +             .proc_handler   = proc_dointvec_minmax,
> +             .extra1         = SYSCTL_ONE,
> +             .extra2         = SYSCTL_INT_MAX,
> +     },
> +};
> +
> +static int __init init_rcu_stall_sysctl(void)
> +{
> +     register_sysctl_init("kernel", rcu_stall_sysctl_table);
> +     return 0;
> +}
> +
> +subsys_initcall(init_rcu_stall_sysctl);
>  
>  #ifdef CONFIG_PROVE_RCU
>  #define RCU_STALL_DELAY_DELTA                (5 * HZ)
> diff --git a/kernel/sysctl.c b/kernel/sysctl.c
> index 
> a22f35013da0d838ef421fc5d192f00d1e70fb0f..fd76f0e1d490940a67d72403d72d204ff13d888a
>  100644
> --- a/kernel/sysctl.c
> +++ b/kernel/sysctl.c
> @@ -1706,26 +1706,6 @@ static const struct ctl_table kern_table[] = {
>               .proc_handler   = proc_dointvec,
>       },
>  #endif
> -#ifdef CONFIG_TREE_RCU
> -     {
> -             .procname       = "panic_on_rcu_stall",
> -             .data           = &sysctl_panic_on_rcu_stall,
> -             .maxlen         = sizeof(sysctl_panic_on_rcu_stall),
> -             .mode           = 0644,
> -             .proc_handler   = proc_dointvec_minmax,
> -             .extra1         = SYSCTL_ZERO,
> -             .extra2         = SYSCTL_ONE,
> -     },
> -     {
> -             .procname       = "max_rcu_stall_to_panic",
> -             .data           = &sysctl_max_rcu_stall_to_panic,
> -             .maxlen         = sizeof(sysctl_max_rcu_stall_to_panic),
> -             .mode           = 0644,
> -             .proc_handler   = proc_dointvec_minmax,
> -             .extra1         = SYSCTL_ONE,
> -             .extra2         = SYSCTL_INT_MAX,
> -     },
> -#endif
>  };
>  
>  int __init sysctl_init_bases(void)
> 


Reply via email to