• Paul E. McKenney's avatar
    rcutorture: Manually clean up after rcu_barrier() failure · 9470a18f
    Paul E. McKenney authored
    Currently, if rcu_barrier() returns too soon, the test waits 100ms and
    then does another instance of the test.  However, if rcu_barrier() were
    to have waited for more than 100ms too short a time, this could cause
    the test's rcu_head structures to be reused while they were still on
    RCU's callback lists.  This can result in knock-on errors that obscure
    the original rcu_barrier() test failure.
    
    This commit therefore adds code that attempts to wait until all of
    the test's callbacks have been invoked.  Of course, if RCU completely
    lost track of the corresponding rcu_head structures, this wait could be
    forever.  This commit therefore also complains if this attempted recovery
    takes more than one second, and it also gives up when the test ends.
    Signed-off-by: default avatarPaul E. McKenney <paulmck@kernel.org>
    9470a18f
rcutorture.c 76 KB