aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/rcu/tree.c
diff options
context:
space:
mode:
authorPaul E. McKenney <paulmck@linux.vnet.ibm.com>2017-05-10 17:36:55 -0400
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>2017-06-08 21:52:38 -0400
commit90040c9e3015054db7efa0101afdd446d1167fe8 (patch)
tree920cd620302375d11e8ecf0d1c270a821c2d97b5 /kernel/rcu/tree.c
parenta3883df3935e10caa8297719d85fa8eaff7cabbd (diff)
rcu: Remove *_SLOW_* Kconfig options
The RCU_TORTURE_TEST_SLOW_PREINIT, RCU_TORTURE_TEST_SLOW_PREINIT_DELAY, RCU_TORTURE_TEST_SLOW_PREINIT_DELAY, RCU_TORTURE_TEST_SLOW_INIT, RCU_TORTURE_TEST_SLOW_INIT_DELAY, RCU_TORTURE_TEST_SLOW_CLEANUP, and RCU_TORTURE_TEST_SLOW_CLEANUP_DELAY Kconfig options are only useful for torture testing, and there are the rcutree.gp_cleanup_delay, rcutree.gp_init_delay, and rcutree.gp_preinit_delay kernel boot parameters that rcutorture can use instead. The effect of these parameters is to artificially slow down grace period initialization and cleanup in order to make some types of race conditions happen more often. This commit therefore simplifies Tree RCU a bit by removing the Kconfig options and adding the corresponding kernel parameters to rcutorture's .boot files instead. However, this commit also leaves out the kernel parameters for TREE02, TREE04, and TREE07 in order to have about the same number of tests slowed as not slowed. TREE01, TREE03, TREE05, and TREE06 are slowed, and the rest are not slowed. Reported-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Diffstat (limited to 'kernel/rcu/tree.c')
-rw-r--r--kernel/rcu/tree.c26
1 files changed, 6 insertions, 20 deletions
diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c
index cac24f5d3fd2..bbbddd85906b 100644
--- a/kernel/rcu/tree.c
+++ b/kernel/rcu/tree.c
@@ -177,26 +177,12 @@ module_param(kthread_prio, int, 0644);
177 177
178/* Delay in jiffies for grace-period initialization delays, debug only. */ 178/* Delay in jiffies for grace-period initialization delays, debug only. */
179 179
180#ifdef CONFIG_RCU_TORTURE_TEST_SLOW_PREINIT 180static int gp_preinit_delay;
181static int gp_preinit_delay = CONFIG_RCU_TORTURE_TEST_SLOW_PREINIT_DELAY; 181module_param(gp_preinit_delay, int, 0444);
182module_param(gp_preinit_delay, int, 0644); 182static int gp_init_delay;
183#else /* #ifdef CONFIG_RCU_TORTURE_TEST_SLOW_PREINIT */ 183module_param(gp_init_delay, int, 0444);
184static const int gp_preinit_delay; 184static int gp_cleanup_delay;
185#endif /* #else #ifdef CONFIG_RCU_TORTURE_TEST_SLOW_PREINIT */ 185module_param(gp_cleanup_delay, int, 0444);
186
187#ifdef CONFIG_RCU_TORTURE_TEST_SLOW_INIT
188static int gp_init_delay = CONFIG_RCU_TORTURE_TEST_SLOW_INIT_DELAY;
189module_param(gp_init_delay, int, 0644);
190#else /* #ifdef CONFIG_RCU_TORTURE_TEST_SLOW_INIT */
191static const int gp_init_delay;
192#endif /* #else #ifdef CONFIG_RCU_TORTURE_TEST_SLOW_INIT */
193
194#ifdef CONFIG_RCU_TORTURE_TEST_SLOW_CLEANUP
195static int gp_cleanup_delay = CONFIG_RCU_TORTURE_TEST_SLOW_CLEANUP_DELAY;
196module_param(gp_cleanup_delay, int, 0644);
197#else /* #ifdef CONFIG_RCU_TORTURE_TEST_SLOW_CLEANUP */
198static const int gp_cleanup_delay;
199#endif /* #else #ifdef CONFIG_RCU_TORTURE_TEST_SLOW_CLEANUP */
200 186
201/* 187/*
202 * Number of grace periods between delays, normalized by the duration of 188 * Number of grace periods between delays, normalized by the duration of