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