Thread (19 messages) 19 messages, 6 authors, 2024-01-24

Re: [RFC PATCH] mm: z3fold: rename CONFIG_Z3FOLD to CONFIG_Z3FOLD_DEPRECATED

From: Nhat Pham <nphamcs@gmail.com>
Date: 2024-01-12 19:42:57
Also in: linux-mm, loongarch

On Fri, Jan 12, 2024 at 11:31 AM Yosry Ahmed [off-list ref] wrote:
The z3fold compressed pages allocator is not widely used, most users use
zsmalloc. The only disadvantage of zsmalloc in comparison is the
dependency on MMU, and zbud is a more common option for !MMU as it was
the default zswap allocator for a long time.
Johannes and I were chatting about this the other day. We might be
able to disable certain zsmalloc behavior in the case of !MMU, making
it available there too. Once that's happened, we can outright remove
z3fold and zbud, and have one allocator to rule them all? :)
quoted hunk ↗ jump to hunk
In hopes of having a single compressed pages allocator at some point,
and following in the footsteps of SLAB, deprecate z3fold. Rename the
user-visible option so that users with CONFIG_Z3FOLD=y get a new prompt
with explanation during make oldconfig. Remove CONFIG_Z3FOLD=y from
defconfigs.

Existing users, if any, should voice their objections. Otherwise, we can
remove z3fold in a few releases.

Signed-off-by: Yosry Ahmed <redacted>
---
I have limited understanding of Kconfigs. I modelled this after commit
eb07c4f39c3e ("mm/slab: rename CONFIG_SLAB to CONFIG_SLAB_DEPRECATED"),
but one difference is that CONFIG_Z3FOLD is a tristate. I made
CONFIG_Z3FOLD_DEPRECATED a boolean config, and CONFIG_Z3FOLD default y
so that it is on by default if CONFIG_Z3FOLD_DEPRECATED is selected. I
am not sure if that's the correct way to do this.

---
 arch/loongarch/configs/loongson3_defconfig |  1 -
 arch/powerpc/configs/ppc64_defconfig       |  1 -
 mm/Kconfig                                 | 13 +++++++++++--
 3 files changed, 11 insertions(+), 4 deletions(-)
diff --git a/arch/loongarch/configs/loongson3_defconfig b/arch/loongarch/configs/loongson3_defconfig
index 33795e4a5bd63..89b66b6c6a1d5 100644
--- a/arch/loongarch/configs/loongson3_defconfig
+++ b/arch/loongarch/configs/loongson3_defconfig
@@ -85,7 +85,6 @@ CONFIG_ZPOOL=y
 CONFIG_ZSWAP=y
 CONFIG_ZSWAP_COMPRESSOR_DEFAULT_ZSTD=y
 CONFIG_ZBUD=y
-CONFIG_Z3FOLD=y
 CONFIG_ZSMALLOC=m
 # CONFIG_COMPAT_BRK is not set
 CONFIG_MEMORY_HOTPLUG=y
diff --git a/arch/powerpc/configs/ppc64_defconfig b/arch/powerpc/configs/ppc64_defconfig
index 544a65fda77bc..d39284489aa26 100644
--- a/arch/powerpc/configs/ppc64_defconfig
+++ b/arch/powerpc/configs/ppc64_defconfig
@@ -81,7 +81,6 @@ CONFIG_MODULE_SIG_SHA512=y
 CONFIG_PARTITION_ADVANCED=y
 CONFIG_BINFMT_MISC=m
 CONFIG_ZSWAP=y
-CONFIG_Z3FOLD=y
 CONFIG_ZSMALLOC=y
 # CONFIG_SLAB_MERGE_DEFAULT is not set
 CONFIG_SLAB_FREELIST_RANDOM=y
diff --git a/mm/Kconfig b/mm/Kconfig
index 1902cfe4cc4f5..bc6cc97c08349 100644
--- a/mm/Kconfig
+++ b/mm/Kconfig
@@ -193,15 +193,24 @@ config ZBUD
          deterministic reclaim properties that make it preferable to a higher
          density approach when reclaim will be used.

-config Z3FOLD
-       tristate "3:1 compression allocator (z3fold)"
+config Z3FOLD_DEPRECATED
+       bool "3:1 compression allocator (z3fold) (DEPRECATED)"
        depends on ZSWAP
        help
+         Deprecated and scheduled for removal in a few cycles. If you have
+         a good reason for using Z3FOLD rather than ZSMALLOC or ZBUD, please
+         contact linux-mm@kvack.org and the zswap maintainers.
+
          A special purpose allocator for storing compressed pages.
          It is designed to store up to three compressed pages per physical
          page. It is a ZBUD derivative so the simplicity and determinism are
          still there.

+config Z3FOLD
+       tristate
+       default y
+       depends on Z3FOLD_DEPRECATED
+
 config ZSMALLOC
        tristate
        prompt "N:1 compression allocator (zsmalloc)" if ZSWAP
--
2.43.0.275.g3460e3d667-goog
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help