]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
f2fs: add a sysfs node to limit max read extent count per-inode
authorChao Yu <chao@kernel.org>
Fri, 22 Nov 2024 06:50:05 +0000 (14:50 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 14 Dec 2024 19:04:06 +0000 (20:04 +0100)
commit7c2e5ed2175e4ab5174f57e29f6c611b6e8f55c7
tree84352919203afe412c7ced06f3e6909aba64f513
parent924f7dd1e832e4e4530d14711db223d2803f7b61
f2fs: add a sysfs node to limit max read extent count per-inode

[ Upstream commit 009a8241a8e5a14ea2dd0b8db42dbf283527dd44 ]

Quoted:
"at this time, there are still 1086911 extent nodes in this zombie
extent tree that need to be cleaned up.

crash_arm64_sprd_v8.0.3++> extent_tree.node_cnt ffffff80896cc500
  node_cnt = {
    counter = 1086911
  },
"

As reported by Xiuhong, there will be a huge number of extent nodes
in extent tree, it may potentially cause:
- slab memory fragments
- extreme long time shrink on extent tree
- low mapping efficiency

Let's add a sysfs node to limit max read extent count for each inode,
by default, value of this threshold is 10240, it can be updated
according to user's requirement.

Reported-by: Xiuhong Wang <xiuhong.wang@unisoc.com>
Closes: https://lore.kernel.org/linux-f2fs-devel/20241112110627.1314632-1-xiuhong.wang@unisoc.com/
Signed-off-by: Xiuhong Wang <xiuhong.wang@unisoc.com>
Signed-off-by: Zhiguo Niu <zhiguo.niu@unisoc.com>
Signed-off-by: Chao Yu <chao@kernel.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Documentation/ABI/testing/sysfs-fs-f2fs
fs/f2fs/extent_cache.c
fs/f2fs/f2fs.h
fs/f2fs/sysfs.c