Commit 7ac3fdf0 authored by Paul E. McKenney's avatar Paul E. McKenney
Browse files

rcutorture: Test start_poll_synchronize_rcu() and poll_state_synchronize_rcu()



This commit causes rcutorture to test the new start_poll_synchronize_rcu()
and poll_state_synchronize_rcu() functions.  Because of the difficulty of
determining the nature of a synchronous RCU grace (expedited or not),
the test that insisted that poll_state_synchronize_rcu() detect an
intervening synchronize_rcu() had to be dropped.

Signed-off-by: default avatarPaul E. McKenney <paulmck@kernel.org>
parent 0909fc2b
Loading
Loading
Loading
Loading
+3 −9
Original line number Diff line number Diff line
@@ -494,6 +494,8 @@ static struct rcu_torture_ops rcu_ops = {
	.sync		= synchronize_rcu,
	.exp_sync	= synchronize_rcu_expedited,
	.get_gp_state	= get_state_synchronize_rcu,
	.start_gp_poll	= start_poll_synchronize_rcu,
	.poll_gp_state	= poll_state_synchronize_rcu,
	.cond_sync	= cond_synchronize_rcu,
	.call		= call_rcu,
	.cb_barrier	= rcu_barrier,
@@ -1223,14 +1225,6 @@ rcu_torture_writer(void *arg)
				WARN_ON_ONCE(1);
				break;
			}
			if (cur_ops->get_gp_state && cur_ops->poll_gp_state)
				WARN_ONCE(rcu_torture_writer_state != RTWS_DEF_FREE &&
					  !cur_ops->poll_gp_state(cookie),
					  "%s: Cookie check 2 failed %s(%d) %lu->%lu\n",
					  __func__,
					  rcu_torture_writer_state_getname(),
					  rcu_torture_writer_state,
					  cookie, cur_ops->get_gp_state());
		}
		WRITE_ONCE(rcu_torture_current_version,
			   rcu_torture_current_version + 1);
@@ -1589,7 +1583,7 @@ static bool rcu_torture_one_read(struct torture_random_state *trsp, long myid)
	preempt_enable();
	if (cur_ops->get_gp_state && cur_ops->poll_gp_state)
		WARN_ONCE(cur_ops->poll_gp_state(cookie),
			  "%s: Cookie check 3 failed %s(%d) %lu->%lu\n",
			  "%s: Cookie check 2 failed %s(%d) %lu->%lu\n",
			  __func__,
			  rcu_torture_writer_state_getname(),
			  rcu_torture_writer_state,