2001-11-17 01:30:48

by Pinyowattayakorn, Naris

[permalink] [raw]
Subject: Driver callback routine when panic() is called

Hi folks,

I don't know if this is an appropriate question to ask on this mailing list
but I have no idea where to ask.

Is there any call that can be used for a driver to register system crash
callback routines. Thus, If panic( ) is called, such a callback can save
device-state information to be written into the system crash dump file.

Thanks,
Naris


2001-11-17 11:38:33

by Keith Owens

[permalink] [raw]
Subject: Re: Driver callback routine when panic() is called

On Fri, 16 Nov 2001 20:30:23 -0500,
"Pinyowattayakorn, Naris" <[email protected]> wrote:
>Is there any call that can be used for a driver to register system crash
>callback routines. Thus, If panic( ) is called, such a callback can save
>device-state information to be written into the system crash dump file.

notifier_chain_register(&panic_notifier_list, ...)

See the kdb patch[1] for example code. Remember that all but one cpus
are dead by the time you are called, I hope all your IRQs go to the
single live cpu.

[1] ftp://oss.sgi.com/projects/kdb/download/ix86

2001-11-17 14:49:43

by Georg Nikodym

[permalink] [raw]
Subject: Re: Driver callback routine when panic() is called

On Sat, 2001-11-17 at 06:38, Keith Owens wrote:
> On Fri, 16 Nov 2001 20:30:23 -0500,
> "Pinyowattayakorn, Naris" <[email protected]> wrote:
> >Is there any call that can be used for a driver to register system crash
> >callback routines. Thus, If panic( ) is called, such a callback can save
> >device-state information to be written into the system crash dump file.
>
> notifier_chain_register(&panic_notifier_list, ...)

Pat O'Rourke also posted a patch[1] that exposes this nicely
(panic_notifier_list is currently static in panic.c).

I've been using this on architectures for which I don't yet have kdb.

[1] http://www.uwsg.iu.edu/hypermail/linux/kernel/0106.1/0978.html

2001-11-18 18:36:26

by Georg Nikodym

[permalink] [raw]
Subject: Re: Driver callback routine when panic() is called

On Sat, 2001-11-17 at 09:49, Georg Nikodym wrote:

> Pat O'Rourke also posted a patch[1] that exposes this nicely
> (panic_notifier_list is currently static in panic.c).

Musta been smoking the good stuff. panic_notifier_list is not static at
all and is extern'ed in kernel.h. Pat's patch just adds a functional
interface...

Time to get the old eyes checked.