Re: [PATCH] panic.c: export panic_on_oops

Ingo Molnar
2009-10-12T19:15:13Z

* Linus Torvalds <torvalds@linux-foundation.org> wrote:

>
>
> On Mon, 12 Oct 2009, Ingo Molnar wrote:
> >
> > * Andrew Morton <akpm@linux-foundation.org> wrote:
> > >
> > > Perhaps oops_enter() is a good place to mark the start of the log, and
> > > flush it within oops_exit().
> >
> > Simplest would be to do the last 2K in oops_exit()? That gives the
> > oops, and the history leading up to it. Since the blocking is 2K,
> > the extra log output is for free.
>
> I agree, except I don't think it should be fixed to 2k.

Yeah - i cited 2K only because that is what mtdoops uses.

> void dump_kmsg(void)
> [...]
>
> Look ma, no locking, no buffer allocations, no nothing.

Neat ...

This could also be used for a warm-reboot preserve-memory thing as well.
A well-known 4K (or so) area to preserve and print out during the next
bootup after a crash. dump_kmsg() could copy the kernel's last will out
to that area, or so.

That would be cross-kernel compatible and the newly booted kernel image
wouldnt overwrite this area. (which it does currently via its
__log_buf[])

Ingo