mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-11-01 09:13:37 +00:00
mm: z3fold: remove z3fold
Patch series "mm: zswap: remove z3fold and zbud", v2. After 2 cycles of deprecating z3fold, remove it as well as zbud (rationale in specific patches). This patch (of 2): Z3fold has been marked as deprecated for 2 cycles and no one complained, as expected. As there are no known users, remove the code now. Link: https://lkml.kernel.org/r/20250129180633.3501650-1-yosry.ahmed@linux.dev Link: https://lkml.kernel.org/r/20250129180633.3501650-2-yosry.ahmed@linux.dev Signed-off-by: Yosry Ahmed <yosry.ahmed@linux.dev> Acked-by: Johannes Weiner <hannes@cmpxchg.org> Reviewed-by: Shakeel Butt <shakeel.butt@linux.dev> Acked-by: Nhat Pham <nphamcs@gmail.com> Cc: Alexander Gordeev <agordeev@linux.ibm.com> Cc: Chengming Zhou <chengming.zhou@linux.dev> Cc: Christian Borntraeger <borntraeger@linux.ibm.com> Cc: Dan Streetman <ddstreet@ieee.org> Cc: Heiko Carstens <hca@linux.ibm.com> Cc: Huacai Chen <chenhuacai@kernel.org> Cc: Miaohe Lin <linmiaohe@huawei.com> Cc: Seth Jennings <sjenning@redhat.com> Cc: Sven Schnelle <svens@linux.ibm.com> Cc: Vasily Gorbik <gor@linux.ibm.com> Cc: Vitaly Wool <vitaly.wool@konsulko.com> Cc: Vlastimil Babka <vbabka@suse.cz> Cc: WANG Xuerui <kernel@xen0n.name> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
parent
350dce38eb
commit
58ba73e521
9 changed files with 1 additions and 1545 deletions
1
CREDITS
1
CREDITS
|
|
@ -4311,6 +4311,7 @@ S: England
|
||||||
N: Vitaly Wool
|
N: Vitaly Wool
|
||||||
E: vitaly.wool@konsulko.com
|
E: vitaly.wool@konsulko.com
|
||||||
D: Maintenance and development of zswap
|
D: Maintenance and development of zswap
|
||||||
|
D: Maintenance and development of z3fold
|
||||||
|
|
||||||
N: Chris Wright
|
N: Chris Wright
|
||||||
E: chrisw@sous-sol.org
|
E: chrisw@sous-sol.org
|
||||||
|
|
|
||||||
|
|
@ -62,5 +62,4 @@ documentation, or deleted if it has served its purpose.
|
||||||
unevictable-lru
|
unevictable-lru
|
||||||
vmalloced-kernel-stacks
|
vmalloced-kernel-stacks
|
||||||
vmemmap_dedup
|
vmemmap_dedup
|
||||||
z3fold
|
|
||||||
zsmalloc
|
zsmalloc
|
||||||
|
|
|
||||||
|
|
@ -1,28 +0,0 @@
|
||||||
======
|
|
||||||
z3fold
|
|
||||||
======
|
|
||||||
|
|
||||||
z3fold is 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 which allows for higher compression
|
|
||||||
ratio keeping the simplicity and determinism of its predecessor.
|
|
||||||
|
|
||||||
The main differences between z3fold and zbud are:
|
|
||||||
|
|
||||||
* unlike zbud, z3fold allows for up to PAGE_SIZE allocations
|
|
||||||
* z3fold can hold up to 3 compressed pages in its page
|
|
||||||
* z3fold doesn't export any API itself and is thus intended to be used
|
|
||||||
via the zpool API.
|
|
||||||
|
|
||||||
To keep the determinism and simplicity, z3fold, just like zbud, always
|
|
||||||
stores an integral number of compressed pages per page, but it can store
|
|
||||||
up to 3 pages unlike zbud which can store at most 2. Therefore the
|
|
||||||
compression ratio goes to around 2.7x while zbud's one is around 1.7x.
|
|
||||||
|
|
||||||
Unlike zbud (but like zsmalloc for that matter) z3fold_alloc() does not
|
|
||||||
return a dereferenceable pointer. Instead, it returns an unsigned long
|
|
||||||
handle which encodes actual location of the allocated object.
|
|
||||||
|
|
||||||
Keeping effective compression ratio close to zsmalloc's, z3fold doesn't
|
|
||||||
depend on MMU enabled and provides more predictable reclaim behavior
|
|
||||||
which makes it a better fit for small and response-critical systems.
|
|
||||||
|
|
@ -58,7 +58,6 @@ Linux内存管理文档
|
||||||
remap_file_pages
|
remap_file_pages
|
||||||
split_page_table_lock
|
split_page_table_lock
|
||||||
vmalloced-kernel-stacks
|
vmalloced-kernel-stacks
|
||||||
z3fold
|
|
||||||
zsmalloc
|
zsmalloc
|
||||||
|
|
||||||
TODOLIST:
|
TODOLIST:
|
||||||
|
|
|
||||||
|
|
@ -1,31 +0,0 @@
|
||||||
:Original: Documentation/mm/z3fold.rst
|
|
||||||
|
|
||||||
:翻译:
|
|
||||||
|
|
||||||
司延腾 Yanteng Si <siyanteng@loongson.cn>
|
|
||||||
|
|
||||||
:校译:
|
|
||||||
|
|
||||||
|
|
||||||
======
|
|
||||||
z3fold
|
|
||||||
======
|
|
||||||
|
|
||||||
z3fold是一个专门用于存储压缩页的分配器。它被设计为每个物理页最多可以存储三个压缩页。
|
|
||||||
它是zbud的衍生物,允许更高的压缩率,保持其前辈的简单性和确定性。
|
|
||||||
|
|
||||||
z3fold和zbud的主要区别是:
|
|
||||||
|
|
||||||
* 与zbud不同的是,z3fold允许最大的PAGE_SIZE分配。
|
|
||||||
* z3fold在其页面中最多可以容纳3个压缩页面
|
|
||||||
* z3fold本身没有输出任何API,因此打算通过zpool的API来使用
|
|
||||||
|
|
||||||
为了保持确定性和简单性,z3fold,就像zbud一样,总是在每页存储一个整数的压缩页,但是
|
|
||||||
它最多可以存储3页,不像zbud最多可以存储2页。因此压缩率达到2.7倍左右,而zbud的压缩
|
|
||||||
率是1.7倍左右。
|
|
||||||
|
|
||||||
不像zbud(但也像zsmalloc),z3fold_alloc()那样不返回一个可重复引用的指针。相反,它
|
|
||||||
返回一个无符号长句柄,它编码了被分配对象的实际位置。
|
|
||||||
|
|
||||||
保持有效的压缩率接近于zsmalloc,z3fold不依赖于MMU的启用,并提供更可预测的回收行
|
|
||||||
为,这使得它更适合于小型和反应迅速的系统。
|
|
||||||
|
|
@ -26181,13 +26181,6 @@ S: Maintained
|
||||||
F: Documentation/input/devices/yealink.rst
|
F: Documentation/input/devices/yealink.rst
|
||||||
F: drivers/input/misc/yealink.*
|
F: drivers/input/misc/yealink.*
|
||||||
|
|
||||||
Z3FOLD COMPRESSED PAGE ALLOCATOR
|
|
||||||
M: Vitaly Wool <vitaly.wool@konsulko.com>
|
|
||||||
R: Miaohe Lin <linmiaohe@huawei.com>
|
|
||||||
L: linux-mm@kvack.org
|
|
||||||
S: Maintained
|
|
||||||
F: mm/z3fold.c
|
|
||||||
|
|
||||||
Z8530 DRIVER FOR AX.25
|
Z8530 DRIVER FOR AX.25
|
||||||
M: Joerg Reuter <jreuter@yaina.de>
|
M: Joerg Reuter <jreuter@yaina.de>
|
||||||
L: linux-hams@vger.kernel.org
|
L: linux-hams@vger.kernel.org
|
||||||
|
|
|
||||||
29
mm/Kconfig
29
mm/Kconfig
|
|
@ -146,15 +146,6 @@ config ZSWAP_ZPOOL_DEFAULT_ZBUD
|
||||||
help
|
help
|
||||||
Use the zbud allocator as the default allocator.
|
Use the zbud allocator as the default allocator.
|
||||||
|
|
||||||
config ZSWAP_ZPOOL_DEFAULT_Z3FOLD_DEPRECATED
|
|
||||||
bool "z3foldi (DEPRECATED)"
|
|
||||||
select Z3FOLD_DEPRECATED
|
|
||||||
help
|
|
||||||
Use the z3fold allocator as the default allocator.
|
|
||||||
|
|
||||||
Deprecated and scheduled for removal in a few cycles,
|
|
||||||
see CONFIG_Z3FOLD_DEPRECATED.
|
|
||||||
|
|
||||||
config ZSWAP_ZPOOL_DEFAULT_ZSMALLOC
|
config ZSWAP_ZPOOL_DEFAULT_ZSMALLOC
|
||||||
bool "zsmalloc"
|
bool "zsmalloc"
|
||||||
select ZSMALLOC
|
select ZSMALLOC
|
||||||
|
|
@ -166,7 +157,6 @@ config ZSWAP_ZPOOL_DEFAULT
|
||||||
string
|
string
|
||||||
depends on ZSWAP
|
depends on ZSWAP
|
||||||
default "zbud" if ZSWAP_ZPOOL_DEFAULT_ZBUD
|
default "zbud" if ZSWAP_ZPOOL_DEFAULT_ZBUD
|
||||||
default "z3fold" if ZSWAP_ZPOOL_DEFAULT_Z3FOLD_DEPRECATED
|
|
||||||
default "zsmalloc" if ZSWAP_ZPOOL_DEFAULT_ZSMALLOC
|
default "zsmalloc" if ZSWAP_ZPOOL_DEFAULT_ZSMALLOC
|
||||||
default ""
|
default ""
|
||||||
|
|
||||||
|
|
@ -180,25 +170,6 @@ config ZBUD
|
||||||
deterministic reclaim properties that make it preferable to a higher
|
deterministic reclaim properties that make it preferable to a higher
|
||||||
density approach when reclaim will be used.
|
density approach when reclaim will be used.
|
||||||
|
|
||||||
config Z3FOLD_DEPRECATED
|
|
||||||
tristate "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 over ZSMALLOC, 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 if Z3FOLD_DEPRECATED=y
|
|
||||||
default m if Z3FOLD_DEPRECATED=m
|
|
||||||
depends on Z3FOLD_DEPRECATED
|
|
||||||
|
|
||||||
config ZSMALLOC
|
config ZSMALLOC
|
||||||
tristate
|
tristate
|
||||||
prompt "N:1 compression allocator (zsmalloc)" if (ZSWAP || ZRAM)
|
prompt "N:1 compression allocator (zsmalloc)" if (ZSWAP || ZRAM)
|
||||||
|
|
|
||||||
|
|
@ -115,7 +115,6 @@ obj-$(CONFIG_MEMORY_ISOLATION) += page_isolation.o
|
||||||
obj-$(CONFIG_ZPOOL) += zpool.o
|
obj-$(CONFIG_ZPOOL) += zpool.o
|
||||||
obj-$(CONFIG_ZBUD) += zbud.o
|
obj-$(CONFIG_ZBUD) += zbud.o
|
||||||
obj-$(CONFIG_ZSMALLOC) += zsmalloc.o
|
obj-$(CONFIG_ZSMALLOC) += zsmalloc.o
|
||||||
obj-$(CONFIG_Z3FOLD) += z3fold.o
|
|
||||||
obj-$(CONFIG_GENERIC_EARLY_IOREMAP) += early_ioremap.o
|
obj-$(CONFIG_GENERIC_EARLY_IOREMAP) += early_ioremap.o
|
||||||
obj-$(CONFIG_CMA) += cma.o
|
obj-$(CONFIG_CMA) += cma.o
|
||||||
obj-$(CONFIG_NUMA) += numa.o
|
obj-$(CONFIG_NUMA) += numa.o
|
||||||
|
|
|
||||||
1447
mm/z3fold.c
1447
mm/z3fold.c
File diff suppressed because it is too large
Load diff
Loading…
Add table
Reference in a new issue