Re: Possible bogus "fuse: trying to steal weird page" warning related to PG_workingset.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, 18 Jun 2021 at 19:29, Johannes Weiner <hannes@xxxxxxxxxxx> wrote:
>
> On Wed, Jun 16, 2021 at 06:48:34PM +0200, Vlastimil Babka wrote:
> > On 6/16/21 3:47 PM, Miklos Szeredi wrote:
> > > On Wed, 16 Jun 2021 at 14:59, Matthew Wilcox <willy@xxxxxxxxxxxxx> wrote:
> > >>
> > >> > AFAICT fuse is trying to steal a pagecache page from a pipe buffer
> > >> > created by splice(2).    The page looks okay, but I have no idea what
> > >> > PG_workingset means in this context.
> > >> >
> > >> > Matthew, can you please help?
> > >>
> > >> PG_workingset was introduced by Johannes:
> > >>
> > >>     mm: workingset: tell cache transitions from workingset thrashing
> > >>
> > >>     Refaults happen during transitions between workingsets as well as in-place
> > >>     thrashing.  Knowing the difference between the two has a range of
> > >>     applications, including measuring the impact of memory shortage on the
> > >>     system performance, as well as the ability to smarter balance pressure
> > >>     between the filesystem cache and the swap-backed workingset.
> > >>
> > >>     During workingset transitions, inactive cache refaults and pushes out
> > >>     established active cache.  When that active cache isn't stale, however,
> > >>     and also ends up refaulting, that's bonafide thrashing.
> > >>
> > >>     Introduce a new page flag that tells on eviction whether the page has been
> > >>     active or not in its lifetime.  This bit is then stored in the shadow
> > >>     entry, to classify refaults as transitioning or thrashing.
> > >>
> > >> so I think it's fine for you to ignore when stealing a page.
> > >
> > > I have problem understanding what a workingset is.  Is it related to
> >
> > "working set" is the notion of the set of pages that the workload needs to
> > access at the moment/relatively short time window, and it would be beneficial if
> > all of it could fit in the RAM.
> > PG_workinsgset is part of the mechanism that tries to estimate this ideal set of
> > pages, and especially when the workload shifts to another set of pages, in order
> > to guide reclaim better. See the big comment at the top of mm/workingset.c for
> > details
> >
> > > swap?  If so, how can such a page be part of a file mapping?
> >
> > Not related to swap. It was actually first implemented only for file pages (page
> > cache), but then extended to anonymous pages by aae466b0052e ("mm/swap:
> > implement workingset detection for anonymous LRU")
>
> Thanks, yes.
>
> Think of it as similar to PG_active. It's just another usage/heat
> indicator of file and anon pages on the reclaim LRU that, unlike
> PG_active, persists across deactivation and even reclaim (we store it
> in the page cache / swapper cache tree until the page refaults).
>
> So if fuse accepts pages that can legally have PG_active set,
> PG_workingset is fine too.

Thanks, fix pushed to:

  git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse.git#for-next

Miklos



[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [Samba]     [Device Mapper]     [CEPH Development]

  Powered by Linux