From 3bf02b5bfebfd44de04262fd520e66423ba16e9a Mon Sep 17 00:00:00 2001 From: Paolo Bonzini Date: Tue, 9 Aug 2011 16:49:27 -0400 Subject: [PATCH] put thread offline while waiting for the init flag Otherwise, the call_rcu thread might end up in a synchronize_rcu that never ends. Signed-off-by: Paolo Bonzini Signed-off-by: Mathieu Desnoyers --- tests/rcutorture.h | 6 ++++-- 1 file 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); -- 2.34.1