mbox series

[PATCHv3,0/4] zsmalloc: fine-grained fullness and new compaction algorithm

Message ID 20230303073130.1950714-1-senozhatsky@chromium.org (mailing list archive)
Headers show
Series zsmalloc: fine-grained fullness and new compaction algorithm | expand

Message

Sergey Senozhatsky March 3, 2023, 7:31 a.m. UTC
Hi,

Existing zsmalloc page fullness grouping leads to suboptimal page
selection for both zs_malloc() and zs_compact(). This patchset
reworks zsmalloc fullness grouping/classification.

Additinally it also implements new compaction algorithm that is
expected to use less CPU-cycles (as it potentially does fewer
memcpy-s in zs_object_copy()).

Test (synthetic) results can be seen in patch 0003.

v3:
-- reworked compaction algorithm implementation (Minchan)
-- keep existing stats and fullness enums (Minchan, Yosry)
-- dropped the patch with new zsmalloc compaction stats (Minchan)
-- report per inuse ratio group classes stats

Sergey Senozhatsky (4):
  zsmalloc: remove insert_zspage() ->inuse optimization
  zsmalloc: fine-grained inuse ratio based fullness grouping
  zsmalloc: rework compaction algorithm
  zsmalloc: show per fullness group class stats

 mm/zsmalloc.c | 362 ++++++++++++++++++++++++--------------------------
 1 file changed, 175 insertions(+), 187 deletions(-)