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

Matt Mackall
2010-09-15T14:46:26Z

On Wed, 2010-09-15 at 16:14 +0200, 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.

This whole discussion is a little disturbing.

The page is being reported clean as per the kernel's definition of
clean, full stop.

So either there's a latent bug/inconsistency in the kernel VM or
external tools are misinterpreting this data. But smaps is just
reporting what's there, the fault doesn't lie in smaps. So fixing smaps
just hides the problem, wherever it is.

Richard's report that the page is still clean after swapoff suggests the
inconsistency lies in the VM.

--
Mathematics is the supreme nostalgia of our time.