----- Original Message -----
Hi Dave,
On Saturday, April 04/13/19, 2019 at 00:39:09 +0530, Dave Anderson wrote:
>
> Hi Surenda,
>
> Great -- I've been looking forward for this patch set to arrive.
>
> A couple things...
>
> First, I'm going to need two sample vmcores (one ELF, one compressed kdump)
> along with the associated vmlinux. You can contact me off-list with
> details
> on how we can arrange a transfer.
>
> Second, I do not want to add a new command. I rarely do so -- in fact,
> the only times since the original crash utility was released was in 2012,
> when the "ipcs" and "tree" commands were added in crash-6.0.7
and
> crash-6.0.8.
> New functionality is typically added as an option to an existing command.
> And in this case, the natural location to put it is in the existing "dev"
> command, and the devdump_extract() function can be moved into dev.c.
> (FWIW, you can add your Chelsio copyright at the top of that file)
>
Ok, thanks for the suggestion. We will move the logic to dev command,
instead.
We're thinking along the lines of following sample commands:
Display the available device dumps
crash> dev -v
INDEX NAME OFFSET SIZE
0 cxgb4_0000:02:00.4 0x278 33558464
1 cxgb4_0000:03:00.4 0x2001278 33558464
Extract device dump at specified index
crash> devdump -v 0 -f device_dump_0.bin
33558464 bytes copied from 0x278 to device_dump_0.bin
Let us know your thoughts.
Hi Surenda,
I've got your sample files -- thanks for them, I really appreciate it.
Here are my thoughts...
You probably want to make "-V" display the list of available device dumps in
the
vmcore, and make "-v <index>" select a singular device for dumping.
I also have a question re: the note contents. Is it up to the individual device
as to what format the dump contents are made up of? Are they always binary
dumps, or could a device dump ASCII log data or something to that effect?
I ask because I see that you are calling display_memory() using these arguments:
void
display_memory_from_file_offset(ulonglong addr, long count, void *opt)
{
display_memory(addr, count, DISPLAY_RAW | ASCII_ENDLINE | HEXADECIMAL,
FILEADDR, opt);
}
Since you are using DISPLAY_RAW, display_memory() will simply copy the
note data unmodified directly to the file, and the ASCII_ENDLINE and
HEXADECIMAL arguments are ignored. So it's not clear why you added them?
But since you did, I'm now wondering whether it would be useful for
a user to optionally dump a human-readable HEXADECIMAL/ASCII_ENDLINE
formatted display of the data to the screen? If so, then perhaps if
the "-v index" option is used alone *without* a file specified,
why not just do a translated device dump to the screen?
So to summarize, my suggestions would be:
dev -V dump the list of device dumps
dev -v <index> [ -r file ] select and display one device dump, either in
human-readable format to the screen by default,
or optionally copy it raw to a file
Thanks,
Dave
> Third, there are some aesthetic changes that should be made in order
> to have the display use a more traditional output format like those
> used by other commands, e.g., with a single header with NAME, OFFSET and
> SIZE columns.
>
Ok, We will fix this in next version.
> Other than that, this looks good on paper!
>
> Thanks,
> Dave
>
Thanks
Surendra
>
> ----- Original Message -----
> > When kernel panic happens and kdump crash kernel is loaded, device
> > drivers enabled in the kdump crash kernel collect device specific
> > snapshot of the hardware/firmware state of their underlying devices.
> > These snapshots are exported as ELF notes with note type NT_VMCOREDD
> > (i.e., 0x700) in vmcore [1].
> >
> > This series of patches enhance crash utility to analyze and
> > extract these hardware specific device dumps from vmcore using
> > a new "devdump" command.
> >
> > Patches 1 and 2 enhance help -D to parse NT_VMCOREDD ELF notes
> > in ELF vmcore and KDUMP vmcore, respectively.
> >
> > Patches 3 and 4 implement devdump command to analyze and extract
> > hardware specific device dumps from ELF vmcore and KDUMP vmcore,
> > respectively.
> >
> > Suggestions and feedback will be much appreciated.
> >
> > Thanks,
> > Surendra
> >
> > [1]
https://lkml.org/lkml/2018/5/2/190
> >
> > Surendra Mobiya (4):
> > parse NT_VMCOREDD ELF notes in ELF vmcore
> > parse NT_VMCOREDD ELF notes in KDUMP vmcore
> > add devdump command to extract NT_VMCOREDD from ELF vmcore
> > enhance devdump command to extract NT_VMCOREDD from KDUMP vmcore
> >
> > Makefile | 4 +--
> > defs.h | 16 +++++++++
> > devdump.c | 114
> > ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> > diskdump.c | 71 +++++++++++++++++++++++++++++++++++-
> > global_data.c | 1 +
> > help.c | 23 ++++++++++++
> > memory.c | 7 ++++
> > netdump.c | 89 +++++++++++++++++++++++++++++++++++++++++++--
> > netdump.h | 3 ++
> > vmcore.h | 36 +++++++++++++++++++
> > 10 files changed, 359 insertions(+), 5 deletions(-)
> > create mode 100644 devdump.c
> > create mode 100644 vmcore.h
> >
> > --
> > 1.8.3.1
> >
> >