Re: [f2fs-dev] [PATCH v5] f2fs: reduce expensive checkpoint trigger frequency

2024-07-09 Thread wangzijie
Hi Chao, I think that we should call f2fs_remove_ino_entry in f2fs_evict_inode to delete ino_entry in CP_XATTR_DIR list. ___ Linux-f2fs-devel mailing list Linux-f2fs-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linux-f2fs-dev

Re: [f2fs-dev] [PATCH v3] f2fs:Add write priority option based on zone UFS

2024-07-09 Thread Chao Yu
On 2024/7/9 10:16, Liao Yuanhong wrote: Currently, we are using a mix of traditional UFS and zone UFS to support some functionalities that cannot be achieved on zone UFS alone. However, there are some issues with this approach. There exists a significant performance difference between traditional

Re: [f2fs-dev] [PATCH v5] f2fs: reduce expensive checkpoint trigger frequency

2024-07-09 Thread Chao Yu
On 2024/7/9 16:40, wangzijie wrote: Hi Chao, I think that we should call f2fs_remove_ino_entry in f2fs_evict_inode to delete ino_entry in CP_XATTR_DIR list. wangzijie, For the case: - update parent's xattr - flush parent's metadata to disk - evict parent's inode - fsync child --- we should tr

Re: [f2fs-dev] [PATCH v2 2/2] f2fs: use meta inode for GC of COW file

2024-07-09 Thread Jaegeuk Kim
On 07/05, Sunmin Jeong wrote: > In case of the COW file, new updates and GC writes are already > separated to page caches of the atomic file and COW file. As some cases > that use the meta inode for GC, there are some race issues between a > foreground thread and GC thread. > > To handle them, we

Re: [f2fs-dev] [PATCH v2] f2fs: only fragment segment in the same section

2024-07-09 Thread Jaegeuk Kim
On 06/25, Sheng Yong wrote: > When new_curseg() is allocating a new segment, if mode=fragment:xxx is > switched on in large section scenario, __get_next_segno() will select > the next segno randomly in the range of [0, maxsegno] in order to > fragment segments. > > If the candidate segno is free,

Re: [f2fs-dev] [PATCH] f2fs: fix null reference error when checking end of zone

2024-07-09 Thread Daeho Jeong
On Thu, Jul 4, 2024 at 12:17 AM Chao Yu wrote: > > On 2024/7/4 9:01, Daejun Park wrote: > > This patch fixes a potentially null pointer being accessed by > > is_end_zone_blkaddr() that checks the last block of a zone > > when f2fs is mounted as a single device. > > blkzoned feature depends on mult

[f2fs-dev] [RFC PATCH 5/5] f2fs: set inline tail flag when create inode

2024-07-09 Thread Wu Bo via Linux-f2fs-devel
Set inline tail flag to enable this feature when new inode is created. Inherit the conditions from inline data. Signed-off-by: Wu Bo --- fs/f2fs/namei.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/fs/f2fs/namei.c b/fs/f2fs/namei.c index e54f8c08bda8..ef5111420524 100644 --- a/fs/f2fs/

[f2fs-dev] [RFC PATCH 4/5] f2fs: implement inline tail read & fiemap

2024-07-09 Thread Wu Bo via Linux-f2fs-devel
Expand the inline data read & fiemap to support inline tail. Signed-off-by: Wu Bo --- fs/f2fs/data.c | 31 ++- fs/f2fs/inline.c | 26 -- 2 files changed, 42 insertions(+), 15 deletions(-) diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c index 24

[f2fs-dev] [RFC PATCH 3/5] f2fs: implement inline tail write & truncate

2024-07-09 Thread Wu Bo via Linux-f2fs-devel
As f2fs inline data is a special case of inline tail, we can expand inline tail based on inline data. If file tail can inline to inode block, not bother to pre-allocate block at write begin. When tail page writing back, inline it or normally write it if the tail is oversize. And when inode page wr

[f2fs-dev] [RFC PATCH 0/5] Add inline tail support

2024-07-09 Thread Wu Bo via Linux-f2fs-devel
The inode in F2FS occupies an entire 4k block. For many small files, this means they consume much more space than their actual size. Therefore, there is significant potential to better utilize the inode block space. Currently, F2FS has two features to make use of the inode block space: inline data

[f2fs-dev] [RFC PATCH 1/5] f2fs: add inline tail mount option

2024-07-09 Thread Wu Bo via Linux-f2fs-devel
Same as inline data, use mount option to control inline tail enable or disable. And enable inline tail as default. Signed-off-by: Wu Bo --- fs/f2fs/f2fs.h | 1 + fs/f2fs/super.c | 15 +++ 2 files changed, 16 insertions(+) diff --git a/fs/f2fs/f2fs.h b/fs/f2fs/f2fs.h index 1974b6af

[f2fs-dev] [RFC PATCH 2/5] f2fs: add inline tail disk layout definition

2024-07-09 Thread Wu Bo via Linux-f2fs-devel
When inline tail is enabled, use a compact block address array. And the rest space is used to save file tail data. The layout of an inode block as following: | inode block | 4096 | inline tail enable| | --- | | --| | inode info | 360 |

[f2fs-dev] [PATCH v3] f2fs: only fragment segment in the same section

2024-07-09 Thread Sheng Yong via Linux-f2fs-devel
When new_curseg() is allocating a new segment, if mode=fragment:xxx is switched on in large section scenario, __get_next_segno() will select the next segno randomly in the range of [0, maxsegno] in order to fragment segments. If the candidate segno is free, get_new_segment() will use it directly a

[f2fs-dev] [PATCH v4] f2fs:Add write priority option based on zone UFS

2024-07-09 Thread Liao Yuanhong via Linux-f2fs-devel
Currently, we are using a mix of traditional UFS and zone UFS to support some functionalities that cannot be achieved on zone UFS alone. However, there are some issues with this approach. There exists a significant performance difference between traditional UFS and zone UFS. Under normal usage,