Re: [patch] 2.4.13-pre3 arm/i386/mips/mips64/s390/s390x/sh die() deadlock

Keith Owens
2001-10-16T02:58:16Z

On Mon, 15 Oct 2001 19:36:02 -0700 (PDT),
Linus Torvalds <torvalds@transmeta.com> wrote:
>On Tue, 16 Oct 2001, Keith Owens wrote:
>>
>> Any die() routine that uses die_lock to avoid multiple cpu reentrancy
>> will deadlock on recursive die() errors.
>
>Well, I have to say that I personally have always considered the "die"
>lock to not be about multiple CPU re-entrancy, but _exactly_ to stop
>infinite oops reports if an oops itself oopses.
>
>I much prefer a dead machine with a partially visible oops over a oops
>where the original oops has scrolled away due to recursive faults.

AFAIK, Andrew Morton was considering concurrent calls to die() when he
added die_lock. There had been bug reports where both cpus were trying
to dump registers at the same time so the output was interleaved and
unreadable, die_lock prevented that.

IMHO it is unrealistic to expect that all code inside die() will never
fail. Any unexpected kernel corruption could cause the register or
backtrace dump to fail. The patch gets the best of both worlds. It
protects against recursive errors and against concurrent calls to
die().