Re: [PATCH 2/9] mm: workingset: tell cache transitions from workingset thrashing
From: Johannes Weiner
Date: Thu Aug 02 2018 - 12:04:04 EST
On Thu, Aug 02, 2018 at 08:57:31AM +0200, peter enderborg wrote:
> On 08/01/2018 05:13 PM, Johannes Weiner wrote:
> > diff --git a/include/linux/page-flags.h b/include/linux/page-flags.h
> > index e34a27727b9a..7af1c3c15d8e 100644
> > --- a/include/linux/page-flags.h
> > +++ b/include/linux/page-flags.h
> > @@ -69,13 +69,14 @@
> > */
> > enum pageflags {
> > PG_locked, /* Page is locked. Don't touch. */
> > - PG_error,
> > PG_referenced,
> > PG_uptodate,
> > PG_dirty,
> > PG_lru,
> > PG_active,
> > + PG_workingset,
> > PG_waiters, /* Page has waiters, check its waitqueue. Must be bit #7 and in the same byte as "PG_locked" */
> > + PG_error,
> > PG_slab,
> > PG_owner_priv_1, /* Owner use. If pagecache, fs may use*/
> > PG_arch_1,
> > @@ -280,6 +281,8 @@ PAGEFLAG(Dirty, dirty, PF_HEAD) TESTSCFLAG(Dirty, dirty, PF_HEAD)
> Any reason why the PG_error was moved? And dont you need to do some handling of this flag in proc/fs/page.c ?
> Some KFP_WORKINGSET ?
I wanted PG_workingset next to PG_active as they both describe how hot
the page is, but PG_waiters needs to remain with the same bit number.
As far as fs/proc/page.c and include/uapi/linux/kernel-page-flags.h
go, that's a good point and we'll probably want to make that available
to userspace eventually. But I'm not super eager to make a brandnew
page flag user ABI right away. Let's give the code that uses it some
wider exposure first and maybe publish it a few release cycles later.
Thanks