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

Nikanth Karthikesan
2010-09-20T03:53:48Z

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.

Thanks
Nikanth