Propose for Several Dump types

Jun Su csujun at gmail.com
Mon Dec 13 23:43:38 PST 2004


Backgroud
========
Many modern server machines have over 4G, even 16G memory. Full Memory
Dump is nightmare for them. In the Linux world, there is a project
named LKD that support several dump methods. In Windows, it also
supports MiniDump, KernelOnlyDump and FullDump.

In our use base, many users can only report the call-stack to the
newsgroup. For these users, a MiniDump can severve them very well.
Most important message can be generagte at the dumptime and save into
dump file.

For the limitation of our current kgdb, we can not trace the stack
into user memory space. In this scenerio, a KernelOnly dump contains
the informaiton that we can used. And in most panic scenerio, VM
system is not the root cause and its data structure are very well. It
is not so risky to rely on the data of VM subsystem. And we can even
create a method to check if the VM subsystem is in a good state before
we did KernelOnlyDump.

Kernel-Only Dump
==============
We now can use /dev/kmem as the core file. If we can generate a dump file with
the same information with it, then we can enable kernel-only dump with
very limit code changes.

1. Change KVM library to support a new type of file that only contains
kernel memory.
2. Change kernel side to write only kernel memory when dumping.
3. Change dumpon utility to do the right checking on the partiction size.

MiniDump
=======
In a minidump, Register info, plus the crash stack is enough.

New Dump MI interface
=================
There is only dumpsys method as the MI interface for the dump system.
And if we look at the implementation of AMD, x86, Alpha, we will find
they are very similiar.
We need revise this interface when importing these new feature in.


I post this in order to get some feedback and thinking about this idea.

Thanks,

Jun


More information about the freebsd-arch mailing list