Re: [PATCH v2] After swapout/swapin private dirty mappings are reported clean in smaps

Nikanth Karthikesan
2010-09-20T05:21:37Z

On Sunday 19 September 2010 23:07:09 Nikanth Karthikesan wrote:
> On Wednesday 15 September 2010 19:44:17 Richard Guenther wrote:
> > On Wed, 15 Sep 2010, Balbir Singh wrote:
> > > * Nikanth Karthikesan <knikanth@suse.de> [2010-09-15 12:01:11]:
> > > > How? Current smaps information without this patch provides incorrect
> > > > information. Just because a private dirty page became part of swap
> > > > cache, it shown as clean and backed by a file. If it is shown as
> > > > clean and backed by swap then it is fine.
> > >
> > > How is GDB using this information?
> >
> > GDB counts the number of dirty and swapped pages in a private mapping and
> > based on that decides whether it needs to dump it to a core file or not.
> > If there are no dirty or swapped pages gdb assumes it can reconstruct
> > the mapping from the original backing file. This way for example
> > shared libraries do not end up in the core file.
>
> Well, may be /proc/pid/pagemap + /proc/kpageflags is enough for this! One
> can get the pageflags using these interfaces. See
> Documentation/vm/pagemap.txt for the explanation on how to do it. There is
> also a sample program that prints page flags using this interface in
> Documentation/vm/page-types.c.
>
> It is bad that /proc/pid/pagemap is never mentioned in
> Documentation/filesystems/proc.txt. I will send a patch to rectify this.

Or even simpler, /proc/pid/numa_maps already exports the number of anonymous
pages in a mapping, if you have CONFIG_NUMA=y! Again not documented in
Documentation/filesystems/proc.txt

Thanks
Nikanth