linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] mm: don't SetPageWorkingset unconditionally during swapin
@ 2020-12-09  1:24 Yu Zhao
  2020-12-09  9:18 ` Vlastimil Babka
                   ` (2 more replies)
  0 siblings, 3 replies; 8+ messages in thread
From: Yu Zhao @ 2020-12-09  1:24 UTC (permalink / raw)
  To: Andrew Morton, Johannes Weiner, Joonsoo Kim
  Cc: Vlastimil Babka, linux-mm, Yu Zhao

We are capable of SetPageWorkingset based on refault distances after
commit aae466b0052e ("mm/swap: implement workingset detection for anonymous LRU")
This is done by workingset_refault(), which is right above the
unconditional SetPageWorkingset deleted by this patch.

The unconditional SetPageWorkingset miscategorizes pages that are
read ahead or never belonged to the working set (e.g., tmpfs pages
accessed by fd). When those pages are swapped in (after they were
swapped out) for the first time, they skew PSI (when using
async swap). When this happens again, depending on their refault
distances, they might skew workingset_restore_anon counter in
addition to PSI because their shadows say they were part of the
working set.

Signed-off-by: Yu Zhao <yuzhao@google.com>
---
 mm/swap_state.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/mm/swap_state.c b/mm/swap_state.c
index 1a01235156d1..6ecc84448d75 100644
--- a/mm/swap_state.c
+++ b/mm/swap_state.c
@@ -536,7 +536,6 @@ struct page *__read_swap_cache_async(swp_entry_t entry, gfp_t gfp_mask,
 		workingset_refault(page, shadow);
 
 	/* Caller will initiate read into locked page */
-	SetPageWorkingset(page);
 	lru_cache_add(page);
 	*new_page_allocated = true;
 	return page;
-- 
2.29.2.576.ga3fc446d84-goog



^ permalink raw reply related	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2020-12-14 23:12 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-12-09  1:24 [PATCH] mm: don't SetPageWorkingset unconditionally during swapin Yu Zhao
2020-12-09  9:18 ` Vlastimil Babka
2020-12-10 11:21   ` Johannes Weiner
2020-12-10 22:44     ` Yu Zhao
2020-12-14 16:09     ` Michal Hocko
2020-12-14 23:12       ` [PATCH] mm/swap: " Yu Zhao
2020-12-10 10:47 ` [PATCH] mm: " Johannes Weiner
2020-12-10 12:06 ` Joonsoo Kim

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).