diff options
author | Paul E. McKenney <paulmck@linux.vnet.ibm.com> | 2018-05-25 07:29:25 -0700 |
---|---|---|
committer | Paul E. McKenney <paulmck@linux.vnet.ibm.com> | 2018-07-12 15:42:05 -0700 |
commit | 2397d072f76b552fc21cda19686d24a8066ced22 (patch) | |
tree | 860f87343dbf161f2b88af54131d9802dcee4202 /net/mac802154/cfg.c | |
parent | 241b42522abb36c78cdc84d0cade358c4449306f (diff) | |
download | talos-obmc-linux-2397d072f76b552fc21cda19686d24a8066ced22.tar.gz talos-obmc-linux-2397d072f76b552fc21cda19686d24a8066ced22.zip |
rcutorture: Handle extended read-side critical sections
This commit enables rcutorture to test whether RCU properly aggregates
different types of read-side critical sections into a larger section
covering the set. It does this by extending an initial read-side
critical section randomly for a random number of extensions. There is
a new rcu_torture_ops field ->extendable that specifies what extensions
are permitted for a given flavor of RCU (for example, SRCU does not
permit any extensions, while RCU-sched permits all types). Note that
if a given operation (for example, local_bh_disable()) extends an RCU
read-side critical section, then rcutorture feels free to also start
and end the critical section with that operation's type of disabling.
Disabling operations include local_bh_disable(), local_irq_disable(),
and preempt_disable(). This commit also adds a new "busted_srcud"
torture type, which verifies rcutorture's ability to detect extensions
of RCU read-side critical sections that are not handled. Gotta test
the test, after all!
Note that it is not legal to invoke local_bh_disable() with interrupts
disabled, and this transition is avoided by overriding the random-number
generator when it wants to call local_bh_disable() while interrupts
are disabled. The code instead leaves both interrupts and bh/softirq
disabled in this case.
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Diffstat (limited to 'net/mac802154/cfg.c')
0 files changed, 0 insertions, 0 deletions