Re: [PATCH v3 3/3] proc: add kpageidle file

Vladimir Davydov
2015-04-29T08:31:49Z

On Wed, Apr 29, 2015 at 01:57:59PM +0900, Minchan Kim wrote:
> On Tue, Apr 28, 2015 at 03:24:42PM +0300, Vladimir Davydov wrote:
> > @@ -69,6 +69,14 @@ There are four components to pagemap:
> > memory cgroup each page is charged to, indexed by PFN. Only available when
> > CONFIG_MEMCG is set.
> >
> > + * /proc/kpageidle. For each page this file contains a 64-bit number, which
> > + equals 1 if the page is idle or 0 otherwise, indexed by PFN. A page is
> > + considered idle if it has not been accessed since it was marked idle. To
> > + mark a page idle one should write 1 to this file at the offset corresponding
> > + to the page. Only user memory pages can be marked idle, for other page types
> > + input is silently ignored. Writing to this file beyond max PFN results in
> > + the ENXIO error. Only available when CONFIG_IDLE_PAGE_TRACKING is set.
> > +
>
> How about using kpageflags for reading part?
>
> I mean PG_idle is one of the page flags and we already have a feature to
> parse of each PFN flag so we could reuse existing feature for reading
> idleness.

Reading PG_idle implies clearing all pte references to make sure the
page was not referenced via a pte. This means that exporting it via
/proc/kpageflags would increase the cost of reading this file, even for
users that don't care about PG_idle. I'm not sure all users of
/proc/kpageflags will be fine with it.

Thanks,
Vladimir