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