linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/2] mm: store zero pages to be swapped out in a bitmap
@ 2024-05-30 10:19 Usama Arif
  2024-05-30 10:19 ` [PATCH 1/2] " Usama Arif
  2024-05-30 10:19 ` [PATCH 2/2] mm: remove code to handle same filled pages Usama Arif
  0 siblings, 2 replies; 12+ messages in thread
From: Usama Arif @ 2024-05-30 10:19 UTC (permalink / raw)
  To: akpm
  Cc: hannes, yosryahmed, nphamcs, chengming.zhou, linux-mm,
	linux-kernel, kernel-team, Usama Arif

As shown in the patchseries that introduced the zswap same-filled
optimization [1], 10-20% of the pages stored in zswap are same-filled.
This is also observed across Meta's server fleet.
By using VM counters in swap_writepage (not included in this
patchseries) it was found that less than 1% of the same-filled
pages to be swapped out are non-zero pages.

For conventional swap setup (without zswap), rather than reading/writing
these pages to flash resulting in increased I/O and flash wear, a bitmap
can be used to mark these pages as zero at write time, and the pages can
be filled at read time if the bit corresponding to the page is set.

When using zswap with swap, this also means that a zswap_entry does not
need to be allocated for zero filled pages resulting in memory savings
which would offset the memory used for the bitmap.

A similar attempt was made earlier in [2] where zswap would only track
zero-filled pages instead of same-filled.
This patchseries adds zero-filled pages optimization to swap
(hence it can be used even if zswap is disabled) and removes the
same-filled code from zswap (as only 1% of the same-filled pages are
non-zero), simplifying code.

This patchseries is based on mm-unstable.

[1] https://lore.kernel.org/all/20171018104832epcms5p1b2232e2236258de3d03d1344dde9fce0@epcms5p1/
[2] https://lore.kernel.org/lkml/20240325235018.2028408-1-yosryahmed@google.com/

Usama Arif (2):
  mm: store zero pages to be swapped out in a bitmap
  mm: remove code to handle same filled pages

 include/linux/swap.h |  1 +
 mm/page_io.c         | 86 ++++++++++++++++++++++++++++++++++++++++++--
 mm/swapfile.c        | 10 ++++++
 mm/zswap.c           | 79 ++++------------------------------------
 4 files changed, 102 insertions(+), 74 deletions(-)

-- 
2.43.0



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

end of thread, other threads:[~2024-05-31 18:18 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-05-30 10:19 [PATCH 0/2] mm: store zero pages to be swapped out in a bitmap Usama Arif
2024-05-30 10:19 ` [PATCH 1/2] " Usama Arif
2024-05-30 12:27   ` Johannes Weiner
2024-05-30 16:24     ` Yosry Ahmed
2024-05-30 19:18       ` Nhat Pham
2024-05-30 19:49         ` Yosry Ahmed
2024-05-30 20:04       ` Matthew Wilcox
2024-05-30 20:16         ` Yosry Ahmed
2024-05-31 18:18         ` Usama Arif
2024-05-30 16:20   ` Yosry Ahmed
2024-05-30 19:58   ` Andrew Morton
2024-05-30 10:19 ` [PATCH 2/2] mm: remove code to handle same filled pages Usama Arif

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox