Strange vkernel crash

Matthew Dillon dillon at apollo.backplane.com
Fri Apr 6 11:39:43 PDT 2007


:Matthew Dillon wrote:
:>     This makes me want to make core dumps work with vkernels (right now=
:
:>     they don't because the core's can't deal with MAP_VPAGETABLE mappin=
:gs).
:
:Do we need MAP_VPAGETABLE also for kernel memory?  I think that's always =
:present and thus should be sufficient.
:
:cheers
:  simon

    Yup, we do.  The virtual kernel needs to be able to map pages between
    itself and the user processes running under it, and must also remap
    pages within its own address space (buffer cache, etc), and the only
    way to do that is for all of them to share the same VPAGETABLE.

    The virtual kernel's binary image is normal (not VPAGETABLEd), but
    most of its data memory will be VPAGETABLEd.

    It would be nearly impossible to support anonymous-backed VPAGETABLEs
    but fortunately we do not have to go that far.  The virtual kernel
    uses a 'memory file' and VPAGETABLE's that, so insofar as the core dump
    code knows its just a file mapping.  The core dump code would have to
    store the fact that it is actually a VPAGETABLE, plus the offset of
    the page directory (instead of the offset into the file of the mmap),
    and then gdb would have to reconstruct the VPAGETABLE from that
    information.

						-Matt





More information about the Kernel mailing list