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

Nikanth Karthikesan
2010-09-15T06:28:20Z

On Wednesday 15 September 2010 10:50:25 KOSAKI Motohiro wrote:
> > On Wednesday 15 September 2010 10:18:11 KOSAKI Motohiro wrote:
> > > > On Wednesday 15 September 2010 05:56:36 KOSAKI Motohiro wrote:
> > > > > > diff --git a/fs/proc/task_mmu.c b/fs/proc/task_mmu.c
> > > > > > index 439fc1f..06fc468 100644
> > > > > > --- a/fs/proc/task_mmu.c
> > > > > > +++ b/fs/proc/task_mmu.c
> > > > > > @@ -368,7 +368,11 @@ static int smaps_pte_range(pmd_t *pmd,
> > > > > > unsigned long addr, unsigned long end, mss->shared_clean +=
> > > > > > PAGE_SIZE; mss->pss += (PAGE_SIZE << PSS_SHIFT) / mapcount;
> > > > > > } else {
> > > > > > - if (pte_dirty(ptent))
> > > > > > + /*
> > > > > > + * File-backed pages, now anonymous are dirty
> > > > > > + * with respect to the file.
> > > > > > + */
> > > > > > + if (pte_dirty(ptent) || (vma->vm_file && PageAnon(page)))
> > > > > > mss->private_dirty += PAGE_SIZE;
> > > > > > else
> > > > > > mss->private_clean += PAGE_SIZE;
> > > > >
> > > > > This is risky than v1. number of dirties are used a lot of
> > > > > application.
> > > >
> > > > This is exactly to help those applications, as currently after
> > > > swap-out and swap-in, the same pages are accounted as
> > > > "Private_Clean:" instead of "Private_Dirty:".
> > >
> > > I don't think so.
> >
> > Actually this behaviour is observed. With a simple memhog, you can see
> > pages which are "Private_Dirty:", become "Swap:" and then to
> > "Private_Clean:". And that confused GDB.
>
> As I said, incorrect information is always no good solustion. We should
> concern how to provide good and enough information, but not how to lie.
> If currect gdb is crappy, it should fix.
>

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.

Thanks
Nikanth

> > > incorrect infomation bring a lot of confusion rather than
> > > its worth.
>