In page_referenced_one: + if (referenced) + clear_page_idle(page); Andres On Wed, Jul 22, 2015 at 12:44 PM, Andrew Morton wrote: > On Wed, 22 Jul 2015 19:25:28 +0300 Vladimir Davydov < > vdavydov@parallels.com> 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@parallels.com> 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(). > > -- Andres Lagar-Cavilla | Google Kernel Team | andreslc@google.com