minidump size on amd64

Andriy Gapon avg at freebsd.org
Mon Sep 27 17:54:21 UTC 2010


It seems that minidump on amd64 is always dumping at least about 1GB of data
regardless of actual memory size and usage and thus can be even larger than
regular dump.

Specifically, I suspect the following code:
for (va = VM_MIN_KERNEL_ADDRESS; va < MAX(KERNBASE + NKPT * NBPDR,
    kernel_vm_end); va += NBPDR) {
        i = (va >> PDPSHIFT) & ((1ul << NPDPEPGSHIFT) - 1);
        /*
         * We always write a page, even if it is zero. Each
         * page written corresponds to 2MB of space
         */
        ptesize += PAGE_SIZE;

It seems that difference between KERNBASE and VM_MIN_KERNEL_ADDRESS is already
~500G.  Which means 500G divided by 2M equals 250K iterations/pages.  Which is 1GB
of data.

Looks like this came from amd64 KVA expansion.
And it seems a little bit wasteful?

-- 
Andriy Gapon


More information about the freebsd-current mailing list