[ltt-dev] [PATCH] rcutorture: put thread offline while waiting for the init flag
Paolo Bonzini
pbonzini at redhat.com
Tue Aug 9 09:39:25 EDT 2011
Otherwise, the call_rcu thread might end up in a synchronize_rcu that
never ends.
Signed-off-by: Paolo Bonzini <pbonzini at redhat.com>
---
tests/rcutorture.h | 6 ++++--
1 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/tests/rcutorture.h b/tests/rcutorture.h
index 5ba3d2b..4c6f9da 100644
--- a/tests/rcutorture.h
+++ b/tests/rcutorture.h
@@ -127,9 +127,10 @@ void *rcu_read_perf_test(void *arg)
rcu_register_thread();
run_on(me);
uatomic_inc(&nthreadsrunning);
+ put_thread_offline();
while (goflag == GOFLAG_INIT)
poll(NULL, 0, 1);
- mark_rcu_quiescent_state();
+ put_thread_online();
while (goflag == GOFLAG_RUN) {
for (i = 0; i < RCU_READ_RUN; i++) {
rcu_read_lock();
@@ -286,9 +287,10 @@ void *rcu_read_stress_test(void *arg)
int pc;
rcu_register_thread();
+ put_thread_offline();
while (goflag == GOFLAG_INIT)
poll(NULL, 0, 1);
- mark_rcu_quiescent_state();
+ put_thread_online();
while (goflag == GOFLAG_RUN) {
rcu_read_lock();
p = rcu_dereference(rcu_stress_current);
--
1.7.6
More information about the lttng-dev
mailing list