Messages in this thread |  | | From | Keith Owens <> | Subject | Re: [patch] 2.4.13-pre3 arm/i386/mips/mips64/s390/s390x/sh die() deadlock | Date | Tue, 16 Oct 2001 12:58:21 +1000 |
| |
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().
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
|  |