• P
    rcu: fix bug in rcutorture system-shutdown code · c9d557c1
    Paul E. McKenney 提交于
    This patch fixes an rcutorture bug found by Eric Sesterhenn that
    resulted in oopses in response to "rmmod rcutorture".  The problem
    was in some new code that attempted to handle the case where a system
    is shut down while rcutorture is still running, for example, when
    rcutorture is built into the kernel so that it cannot be removed.
    The fix causes the rcutorture threads to "park" in an
    schedule_timeout_uninterruptible(MAX_SCHEDULE_TIMEOUT) rather than
    trying to get them to terminate cleanly.  Concurrent shutdown and
    rmmod is illegal.
    
    I believe that this is 2.6.29 material, as it is used in some testing
    setups.
    
    For reference, here are the rcutorture operating modes:
    
    CONFIG_RCU_TORTURE_TEST=m
    
    	This is the normal rcutorture build.  Use "modprobe rcutorture"
    	(with optional arguments) to start, and "rmmod rcutorture" to
    	stop.  If you shut the system down without doing the rmmod, you
    	should see console output like:
    
    	rcutorture thread rcu_torture_writer parking due to system shutdown
    
    	One for each rcutorture kthread.
    
    CONFIG_RCU_TORTURE_TEST=y
    CONFIG_RCU_TORTURE_TEST_RUNNABLE=n
    
    	Use this if you want rcutorture built in, but don't want the
    	test to start running during early boot.  To start the
    	torturing:
    
    		echo 1 > /proc/sys/kernel/rcutorture_runnable
    
    	To stop the torturing, s/1/0/
    
    	You will get "parking" console messages as noted above when
    	you shut the system down.
    
    CONFIG_RCU_TORTURE_TEST=y
    CONFIG_RCU_TORTURE_TEST_RUNNABLE=y
    
    	Same as above, except that the torturing starts during early
    	boot.  Only for the stout of heart and strong of stomach.
    	The same /proc entry noted above may be used to control the
    	test.
    Located-by: NEric Sesterhenn <snakebyte@gmx.de>
    Tested-by: NEric Sesterhenn <snakebyte@gmx.de>
    Signed-off-by: NPaul E. McKenney <paulmck@linux.vnet.ibm.com>
    Signed-off-by: NIngo Molnar <mingo@elte.hu>
    c9d557c1
rcutorture.c 33.5 KB