diff options
author | Paul E. McKenney <paulmck@linux.vnet.ibm.com> | 2014-01-28 15:29:21 -0800 |
---|---|---|
committer | Paul E. McKenney <paulmck@linux.vnet.ibm.com> | 2014-02-23 09:01:05 -0800 |
commit | 3808dc9fab05913060626d7f0edd0f195cb9dcab (patch) | |
tree | 5db578f420dc657197fd34b3a9a2c20bf79e0de3 /include | |
parent | f67a33561e6e5463b548219df98130da95f2e4a7 (diff) | |
download | linux-3808dc9fab05913060626d7f0edd0f195cb9dcab.tar.gz linux-3808dc9fab05913060626d7f0edd0f195cb9dcab.tar.bz2 linux-3808dc9fab05913060626d7f0edd0f195cb9dcab.zip |
rcutorture: Abstract torture_shuffle()
The torture_shuffle() function forces each CPU in turn to go idle
periodically in order to check for problems interacting with per-CPU
variables and with dyntick-idle mode. Because this sort of debugging
is not specific to RCU, this commit abstracts that functionality.
This in turn requires abstracting some additional infrastructure.
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Reviewed-by: Josh Triplett <josh@joshtriplett.org>
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/torture.h | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/include/linux/torture.h b/include/linux/torture.h index 8474d776c864..544a2c33c1ae 100644 --- a/include/linux/torture.h +++ b/include/linux/torture.h @@ -69,6 +69,11 @@ struct torture_random_state { #define DEFINE_TORTURE_RANDOM(name) struct torture_random_state name = { 0, 0 } unsigned long torture_random(struct torture_random_state *trsp); +/* Task shuffler, which causes CPUs to occasionally go idle. */ +void torture_shuffle_task_register(struct task_struct *tp); +int torture_shuffle_init(long shuffint); +void torture_shuffle_cleanup(void); + /* Shutdown task absorption, for when the tasks cannot safely be killed. */ void torture_shutdown_absorb(const char *title); |