Linux Kernel Crash Dump implementation

"Hanson, Jonathan M" <[email protected]> Wed, 3 Mar 2004 09:47:38 -0700
Newsgroups gmane.linux.lkcd.general
Message-ID <[email protected]>
            I'm looking to implement through a kernel module something
very similar to how the Linux Kernel Crash Dump works. I'm writing to
this list in hopes of getting an idea of where to begin looking through
the kernel patches for LKCD to see how it's implemented.

            What I want to do is to have my kernel module intercept an
int 3 instruction like a debugger does (I already have this part
working), it will then dump out to a file the contents of memory by
physical address, and then it will write to another file the x86 CPU
architecture state (general-purpose registers, MSRs, floating-point
registers, MMX and XMM registers, etc.). The idea is to be able to take
the memory image and the architecture state and recreate the system's
state to be able to resume from after the int 3 instruction was
received.

            Are there some high-level design documents for LKCD that go
into how it handles these kinds of things? If not, can a developer on
the list point me in the right direction as to where to begin looking in
the patch in order to accomplish what I'm trying to do? This is my first
attempt at writing a kernel module and I am by far not a kernel
internals expert so that's why I'm seeking a little guidance. I would
appreciate any help offered no matter how small.

            I'm also looking at Software Suspend and someone on that
list suggested that I also check here.

            Thank you very much for you time.

 

 

Jon M. Hanson

Senior Software Engineer

Office: +1-480-552-0519

Mobile: +1-602-330-4768 / [email protected]

My current location:
http://www.findu.com/cgi-bin/find-us.cgi?call=N7ZVJ-1

Work weblog: http://jmhanson-linux.ch.intel.com:8668

Public key: http://jmhanson-linux.ch.intel.com/jon_hanson_public_key.asc

Public key fingerprint: 3049 D9DF 35A5 5AF3 3883 077A 19F6 5784 5B01
B65E

 

/* The green code always compiles. */