rcu: make treercu safe for suspend and resume
authorPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Sun, 4 Jan 2009 19:41:11 +0000 (11:41 -0800)
committerIngo Molnar <mingo@elte.hu>
Mon, 5 Jan 2009 09:12:33 +0000 (10:12 +0100)
commit90a4d2c0106bb690f0b6af3d506febc35c658aa7
treef62ee471a6d94fd94bfe97be339ab30ce7814e6f
parentc12172c0251761c54260376eb29a5f6547495580
rcu: make treercu safe for suspend and resume

Impact: fix kernel warnings [and potential crash] during suspend+resume

Kudos to both Dhaval Giani and Jens Axboe for finding a bug in treercu
that causes warnings after suspend-resume cycles in Dhaval's case and
during stress tests in Jens's case.  It would also probably cause failures
if heavily stressed.  The solution, ironically enough, is to revert to
rcupreempt's code for initializing the dynticks state.  And the patch
even results in smaller code -- so what was I thinking???

This is 2.6.29 material, given that people really do suspend and resume
Linux these days.  ;-)

Reported-by: Dhaval Giani <dhaval@linux.vnet.ibm.com>
Reported-by: Jens Axboe <jens.axboe@oracle.com>
Tested-by: Dhaval Giani <dhaval@linux.vnet.ibm.com>
Tested-by: Jens Axboe <jens.axboe@oracle.com>
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
kernel/rcutree.c