From: Dave Anderson <anderson(a)redhat.com>
Subject: Re: [Crash-utility] [PATCH] add arm support for libgcore
Date: Wed, 15 Feb 2012 15:54:35 -0500 (EST)
----- Original Message -----
...
> > > The reason why I've included the ``page fault'' in the default
warning
> > > message is to avoid the situation where users get confused they have
> > > successfully got complete user-space coredump.
> > >
> > > GDB tends to work well because part of user stack necessary for
> > > backtrace is not paged out most of time; of course, the backtrace
> > > would fail if paged-out.
> > >
> > > Thanks.
> > > HATAYAMA, Daisuke
> > >
> >
> > I see, thanks for detailed explanation.
> > My another curious is whether we could refill those missing swapped page, if
> > we provide whole swap partition data?
> >
> > Thanks,
> > Lei
>
> Aren't most of those "page fault" references that you see
> during a gcore operation typically referring to pages that
> exist in the target task's virtual memory map but have not
> been referenced?
For example, none of these pages are swapped out:
crash> gcore 1951
gcore: WARNING: FPU may be inaccurate: 1951
gcore: WARNING: page fault at 386df98000
gcore: WARNING: page fault at 386df99000
gcore: WARNING: page fault at 386df9e000
gcore: WARNING: page fault at 386df9f000
gcore: WARNING: page fault at 7fff632f3000
gcore: WARNING: page fault at 7fff632f4000
gcore: WARNING: page fault at 7fff632f5000
gcore: WARNING: page fault at 7fff632f6000
gcore: WARNING: page fault at 7fff632f7000
gcore: WARNING: page fault at 7fff632f8000
gcore: WARNING: page fault at 7fff632f9000
gcore: WARNING: page fault at 7fff632fa000
gcore: WARNING: page fault at 7fff632fb000
gcore: WARNING: page fault at 7fff632fc000
gcore: WARNING: page fault at 7fff632fd000
gcore: WARNING: page fault at 7fff632fe000
gcore: WARNING: page fault at 7fff632ff000
gcore: WARNING: page fault at 7fff63300000
gcore: WARNING: page fault at 7fff63301000
gcore: WARNING: page fault at 7fff63302000
gcore: WARNING: page fault at 7fff63303000
gcore: WARNING: page fault at 7fff63304000
gcore: WARNING: page fault at 7fff63305000
Saved core.1951.system_crash
crash>
In fact, no swap was used at all:
crash> swap
FILENAME TYPE SIZE USED PCT PRIORITY
/dm-1 PARTITION 5439480k 0k 0% -1
crash>
And here are the "page fault" pages from above, all either unreferenced
file-backed pages or unreferenced data pages:
crash> vm -p
... [ cut ] ...
VIRTUAL PHYSICAL
... [ cut ] ...
386df98000 FILE: /lib64/libc-2.12.so OFFSET: 198000
386df99000 FILE: /lib64/libc-2.12.so OFFSET: 199000
... [ cut ] ...
386df9e000 (not mapped)
386df9f000 (not mapped)
... [ cut ] ...
7fff632f3000 (not mapped)
7fff632f4000 (not mapped)
7fff632f5000 (not mapped)
7fff632f6000 (not mapped)
7fff632f7000 (not mapped)
7fff632f8000 (not mapped)
7fff632f9000 (not mapped)
7fff632fa000 (not mapped)
7fff632fb000 (not mapped)
7fff632fc000 (not mapped)
7fff632fd000 (not mapped)
7fff632fe000 (not mapped)
7fff632ff000 (not mapped)
7fff63300000 (not mapped)
7fff63301000 (not mapped)
7fff63302000 (not mapped)
7fff63303000 (not mapped)
7fff63304000 (not mapped)
7fff63305000 (not mapped)
...
Dave
Thanks for complement, Dave.
I overlooked lazy allocation case in my explanation... In this sense,
the warning message might be unkind to users. Still, there's a way of
checking each page's status by a variety of crash sub-commands.
Lei, I think it's surely possible to reconstruct complete core dump
from swap data if the swap partition is preserved entirely.
Thanks.
HATAYAMA, Daisuke