[Crash-utility] [PATCH] Add support for 'foreign' page sizes in kdump dumps

Dave Anderson anderson at redhat.com
Wed Jan 14 19:08:00 UTC 2009


----- "Bernhard Walle" <bwalle at suse.de> wrote:

> This affects only ppc64 and ia64 since that are the only architectures
> that have a page size that is configurable at runtime by the system
> (which means at boot by the kernel).
> 
> It also only affects dumps of the formats diskdump (which includes kdump
> compressed dumps created by makedumpfile) and netdump (which includes kdump
> ELF dumps copied from /proc/vmcore without any filtering applied and created
> by makedumpfile with the -E option).
> 
> The patch reads the page size from the diskdump header or from the VMCOREINFO
> in case of netdump (if it's there). For ia64 it also evaluates the page size
> of the zero page to *change* the page size. In the past id didn't change the
> page size, it only printed an error.
> 
> The patch has been tested on ppc64 (4k vs. 64k), ia64 (16k vs. 64k) and x86-64
> (always 4k). It has been tested for compilation on i386, x86-64, ia64, PPC,
> ppc64, s390 and s390x. Everything on a SLES 11/openSUSE 11.1 code base.
> 
> 
> Signed-off-by: Bernhard Walle <bwalle at suse.de>

Unlike Robin's patch, your patch to read_dump_header() drops this error check:

        if (sizeof(*header) + sizeof(void *) * header->nr_cpus > block_size ||
            header->nr_cpus <= 0) {
                error(INFO, "%s: invalid nr_cpus value: %d\n",
                        DISKDUMP_VALID() ? "diskdump" : "compressed kdump",
                        header->nr_cpus);
                goto err;
        }

I didn't write this, but it seems to be a valid check.  Did you determine
that it's impossible even though crash does allow 4096 cpus for ia64?
Or is it a bogus to begin with?

Dave




More information about the Crash-utility mailing list