lkcd
[Top] [All Lists]

Re: successful Alpha crash header dump

To: Brian Hall <brianw.hall@xxxxxxxxxx>
Subject: Re: successful Alpha crash header dump
From: Matt Robinson <yakker@xxxxxxxxxxxxxxxxxxxx>
Date: Tue, 1 Feb 2000 16:21:29 -0800 (PST)
Cc: lkcd@xxxxxxxxxxx
In-reply-to: <XFMail.20000201102732.brianw.hall@xxxxxxxxxx>
Sender: owner-lkcd@xxxxxxxxxxx
On Tue, 1 Feb 2000, Brian Hall wrote:
|>I finally got a successful generation and read of a Linux Alpha crash dump
|>header. This is not the complete crash dump implementation, that will require
|>porting over several other items, including an Alpha disassembler for the code
|>trace. The final "gotcha" was that the code to read and parse the dump header
|>from the swapfile on reboot needed to be adjusted for the Alpha page size,
|>instead of Intel.

Hmmm... didn't it just use dh_page_size, or ... ?  I didn't think
I had a hard-coded limit.  If it is hard-coded somewhere, I'll change
it over.

|>Below is the output from my test code, automatically generated after
|>initiating a crash dump and reboot. This is not representative of what the
|>final crash dump output will look like. Yes, the date looks odd, but that is
|>what the clock on the AS200 reads.

Awesome!  Great job, Brian.

|>Next will be testing the writing of the rest of the dump pages, and then the
|>porting of the lcrash toolset which will generate a useful footprint, the
|>layout of which will be identical to the Intel version.

Just some hints ... there are only a couple of files to change to
get the reading of the dumps to work.  The real trick will be the
disassembly and stack trace code.

Now, most of the disassembler stuff you'll be able to leverage off
of the GNU 'gdb' disassembler.  The only reason why we didn't use
that for 'lcrash' on x86 is because we want to work without frame
pointers.  For architectures that don't have frame pointers, you're
free to use what GNU provides for both stack traces and disassembly.
Note that the only key is "how" you read the memory pages from the
crash dump (which is automatic with the compression library) and
how you implement stack traces on the memory pages.  Shouldn't be
too difficult -- let GNU do the work for you.

Great job, Brian!

--Matt

P.S.  I'm going to make one more change to __dump_execute(), to not
      write out the dump header as often as we do ... I changed it from
      writing it out at the beginning and the end, to writing it out all
      the time.  I need to find the happy medium ... It won't change
      the dh_version, however.

|>=========
|>
|>Dump Header (version 2):
|>Magic number: 0xa8190173618f23ed
|>PAGE_SIZE = 8192
|>Dump header size: 728
|>Physical memory:
|>        Start: 0x0
|>          End: 0x6000000
|>         Size: 95346688
|>Number of pages in dump: 0
|>Time of dump: Thu Feb  1 10:13:06 2052
|>
|>
|>=========
|>
|>--
|>Brian Hall <brianw.hall@xxxxxxxxxx>
|>http://www.bigfoot.com/~brihall
|>Linux Consultant


<Prev in Thread] Current Thread [Next in Thread>