The patch titled Subject: mm/zsmalloc: fix class per-fullness zspage counts has been added to the -mm mm-unstable branch. Its filename is mm-zsmalloc-fix-class-per-fullness-zspage-counts.patch This patch will shortly appear at https://git.kernel.org/pub/scm/linux/kernel/git/akpm/25-new.git/tree/patches/mm-zsmalloc-fix-class-per-fullness-zspage-counts.patch This patch will later appear in the mm-unstable branch at git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm Before you just go and hit "reply", please: a) Consider who else should be cc'ed b) Prefer to cc a suitable mailing list as well c) Ideally: find the original patch on the mailing list and do a reply-to-all to that, adding suitable additional cc's *** Remember to use Documentation/process/submit-checklist.rst when testing your code *** The -mm tree is included into linux-next via the mm-everything branch at git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm and is updated there every 2-3 working days ------------------------------------------------------ From: Chengming Zhou <chengming.zhou@xxxxxxxxx> Subject: mm/zsmalloc: fix class per-fullness zspage counts Date: Thu, 27 Jun 2024 15:59:58 +0800 We always use insert_zspage() and remove_zspage() to update zspage's fullness location, which will account correctly. But this special async free path use "splice" instead of remove_zspage(), so the per-fullness zspage count for ZS_INUSE_RATIO_0 won't decrease. Fix it by decreasing when iterate over the zspage free list. Link: https://lkml.kernel.org/r/20240627075959.611783-1-chengming.zhou@xxxxxxxxx Signed-off-by: Chengming Zhou <chengming.zhou@xxxxxxxxx> Cc: Minchan Kim <minchan@xxxxxxxxxx> Cc: Sergey Senozhatsky <senozhatsky@xxxxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- mm/zsmalloc.c | 1 + 1 file changed, 1 insertion(+) --- a/mm/zsmalloc.c~mm-zsmalloc-fix-class-per-fullness-zspage-counts +++ a/mm/zsmalloc.c @@ -1883,6 +1883,7 @@ static void async_free_zspage(struct wor class = zspage_class(pool, zspage); spin_lock(&class->lock); + class_stat_dec(class, ZS_INUSE_RATIO_0, 1); __free_zspage(pool, class, zspage); spin_unlock(&class->lock); } _ Patches currently in -mm which might be from chengming.zhou@xxxxxxxxx are mm-zswap-use-only-one-pool-in-zswap.patch mm-zswap-use-only-one-pool-in-zswap-v2.patch mm-zswap-use-only-one-pool-in-zswap-v3.patch mm-ksm-refactor-out-try_to_merge_with_zero_page.patch mm-ksm-dont-waste-time-searching-stable-tree-for-fast-changing-page.patch mm-ksm-optimize-the-chain-chain_prune-interfaces.patch mm-zsmalloc-fix-class-per-fullness-zspage-counts.patch mm-zsmalloc-move-record_obj-into-obj_malloc.patch