Hi Dave,
2007/04/03 09:40:56 -0400, Dave Anderson <anderson(a)redhat.com> wrote:
> It is a good idea that "help -n" shows dump_level.
>
> I checked the code of diskdumputils-1.3.25, and I found the dumpfilter
> command refers to diskdump->total_ram_blocks. In struct disk_dump_header,
> there is no member not referred to by neither the crash utility or diskdumputils.
> My proposal (changing total_ram_blocks for dump_level) was not good.
>
> I think it is enough that the member for dump_level is added into the
> sub header of kdump (struct kdump_sub_header) only for kdump.
> Is the change for diskdump necessary, too ?
>
>
If this were to be restricted to kdump only, then it would be
safe to add a field to the kdump_sub_header since it contains
only one field.
Whether it is necessary for diskdump is up to the diskdump
maintainers to decide. But if they want to do it, they would
have to come up with different manner of adding it to the
disk_dump_sub_header structure, because of the way
that it's declared, i.e., using "long elf_regs" as a placeholder
to describe the start of the processor-dependent register
set. They'd need to define a new disk_dump_sub_header
version that alternatively would be used depending upon
the header->version number.
We asked the diskdump developers (Indoh-san, Akiyama-san) how
to display diskdump's dump_level, and they said that changing
of file format is not necessary for displaying the dump_level.
And they gave us a good advice that the crash utility can get
diskdump's dump_level by using a symbol "dump_level" like the
following:
int get_dump_level(void)
{
if (symbol_exists("dump_level")) {
int dump_level;
readmem(symbol_value("dump_level"), KVADDR, &dump_level,
sizeof(dump_level), "dump_level",
FAULT_ON_ERROR);
return dump_level;
}
else
...
I think it is a good way because the crash utility can get diskdump's
dump_level of the existing dumpfile. I propose the following way for it.
Please let me know your opinion.
- If a symbol "dump_level" is present (diskdump), the dump_level is
taken from a symbol "dump_level".
- Else if a dumpfile is kdump's and header_version is 1 or more, the
dump_level taken from a new member "kdump_sub_header->dump_level".
Thanks
Ken'ichi Ohmichi