Re: [PATCH -mm v9 7/8] proc: export idle flag via kpageflags

Andrew Morton
2015-07-22T19:44:21Z

On Wed, 22 Jul 2015 19:25:28 +0300 Vladimir Davydov <vdavydov-bzQdu9zFT3WakBO8gow8eQ@public.gmane.org> wrote:

> On Tue, Jul 21, 2015 at 04:35:00PM -0700, Andrew Morton wrote:
> > On Sun, 19 Jul 2015 15:31:16 +0300 Vladimir Davydov <vdavydov-bzQdu9zFT3WakBO8gow8eQ@public.gmane.org> wrote:
> >
> > > As noted by Minchan, a benefit of reading idle flag from
> > > /proc/kpageflags is that one can easily filter dirty and/or unevictable
> > > pages while estimating the size of unused memory.
> > >
> > > Note that idle flag read from /proc/kpageflags may be stale in case the
> > > page was accessed via a PTE, because it would be too costly to iterate
> > > over all page mappings on each /proc/kpageflags read to provide an
> > > up-to-date value. To make sure the flag is up-to-date one has to read
> > > /proc/kpageidle first.
> >
> > Is there any value in teaching the regular old page scanner to update
> > these flags? If it's doing an rmap scan anyway...
>
> I don't understand what you mean by "regular old page scanner". Could
> you please elaborate?

Whenever kswapd or direct reclaim perform an rmap scan, take that as an
opportunity to also update PageIdle().