lkml.org 
[lkml]   [2021]   [Mar]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH tip/core/rcu 3/3] rcutorture: Test start_poll_synchronize_rcu() and poll_state_synchronize_rcu()
    Date
    From: "Paul E. McKenney" <paulmck@kernel.org>

    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: Paul E. McKenney <paulmck@kernel.org>
    ---
    kernel/rcu/rcutorture.c | 12 +++---------
    1 file changed, 3 insertions(+), 9 deletions(-)

    diff --git a/kernel/rcu/rcutorture.c b/kernel/rcu/rcutorture.c
    index 99657ff..956e6bf 100644
    --- a/kernel/rcu/rcutorture.c
    +++ b/kernel/rcu/rcutorture.c
    @@ -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,
    --
    2.9.5
    \
     
     \ /
      Last update: 2021-03-04 02:40    [W:2.901 / U:0.096 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site