Skip to content

Commit fff6703

Browse files
committed
rcu: Move rcu_stall related sysctls into rcu/tree_stall.h
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. Reviewed-by: Luis Chamberlain <[email protected]> Reviewed-by: Joel Fernandes <[email protected]> Reviewed-by: Kees Cook <[email protected]> Signed-off-by: Joel Granados <[email protected]>
1 parent f1b4f23 commit fff6703

File tree

3 files changed

+31
-24
lines changed

3 files changed

+31
-24
lines changed

include/linux/panic.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,6 @@ extern int panic_on_warn;
2525
extern unsigned long panic_on_taint;
2626
extern bool panic_on_taint_nousertaint;
2727

28-
extern int sysctl_panic_on_rcu_stall;
29-
extern int sysctl_max_rcu_stall_to_panic;
3028
extern int sysctl_panic_on_stackoverflow;
3129

3230
extern bool crash_kexec_post_notifiers;

kernel/rcu/tree_stall.h

Lines changed: 31 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,37 @@
1717
// Controlling CPU stall warnings, including delay calculation.
1818

1919
/* panic() on RCU Stall sysctl. */
20-
int sysctl_panic_on_rcu_stall __read_mostly;
21-
int sysctl_max_rcu_stall_to_panic __read_mostly;
20+
static int sysctl_panic_on_rcu_stall __read_mostly;
21+
static int sysctl_max_rcu_stall_to_panic __read_mostly;
22+
23+
static const struct ctl_table rcu_stall_sysctl_table[] = {
24+
{
25+
.procname = "panic_on_rcu_stall",
26+
.data = &sysctl_panic_on_rcu_stall,
27+
.maxlen = sizeof(sysctl_panic_on_rcu_stall),
28+
.mode = 0644,
29+
.proc_handler = proc_dointvec_minmax,
30+
.extra1 = SYSCTL_ZERO,
31+
.extra2 = SYSCTL_ONE,
32+
},
33+
{
34+
.procname = "max_rcu_stall_to_panic",
35+
.data = &sysctl_max_rcu_stall_to_panic,
36+
.maxlen = sizeof(sysctl_max_rcu_stall_to_panic),
37+
.mode = 0644,
38+
.proc_handler = proc_dointvec_minmax,
39+
.extra1 = SYSCTL_ONE,
40+
.extra2 = SYSCTL_INT_MAX,
41+
},
42+
};
43+
44+
static int __init init_rcu_stall_sysctl(void)
45+
{
46+
register_sysctl_init("kernel", rcu_stall_sysctl_table);
47+
return 0;
48+
}
49+
50+
subsys_initcall(init_rcu_stall_sysctl);
2251

2352
#ifdef CONFIG_SYSFS
2453

kernel/sysctl.c

Lines changed: 0 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1706,26 +1706,6 @@ static const struct ctl_table kern_table[] = {
17061706
.proc_handler = proc_dointvec,
17071707
},
17081708
#endif
1709-
#ifdef CONFIG_TREE_RCU
1710-
{
1711-
.procname = "panic_on_rcu_stall",
1712-
.data = &sysctl_panic_on_rcu_stall,
1713-
.maxlen = sizeof(sysctl_panic_on_rcu_stall),
1714-
.mode = 0644,
1715-
.proc_handler = proc_dointvec_minmax,
1716-
.extra1 = SYSCTL_ZERO,
1717-
.extra2 = SYSCTL_ONE,
1718-
},
1719-
{
1720-
.procname = "max_rcu_stall_to_panic",
1721-
.data = &sysctl_max_rcu_stall_to_panic,
1722-
.maxlen = sizeof(sysctl_max_rcu_stall_to_panic),
1723-
.mode = 0644,
1724-
.proc_handler = proc_dointvec_minmax,
1725-
.extra1 = SYSCTL_ONE,
1726-
.extra2 = SYSCTL_INT_MAX,
1727-
},
1728-
#endif
17291709
};
17301710

17311711
int __init sysctl_init_bases(void)

0 commit comments

Comments
 (0)