• Paul E. McKenney's avatar
    rcutorture: Fix stutter_wait() return value and freelist checks · e8516c64
    Paul E. McKenney authored
    The stutter_wait() function is supposed to return true if it actually
    waits and false otherwise, but it instead unconditionally returns false.
    Which hides a bug in rcu_torture_writer() that fails to account for
    the fact that one of the rcu_tortures[] array elements will normally be
    referenced by rcu_torture_current, and thus not be on the freelist.
    
    This commit therefore corrects the stutter_wait() return value and adds a
    check for rcu_torture_current to rcu_torture_writer()'s check that things
    get freed after everything goes quiescent.  In addition, this commit
    causes torture_stutter() to give a bit more than one second (instead of
    only one jiffy) warning of the end of the stutter interval.  Finally,
    this commit disables long-delay readers and aggressive update-side
    forward-progress checks while forward-progress testing is in flight.
    Reported-by: default avatarSebastian Andrzej Siewior <bigeasy@linutronix.de>
    Signed-off-by: default avatarPaul E. McKenney <paulmck@linux.ibm.com>
    e8516c64
torture.c 21 KB