Message ID | 20250317133611.457-1-yohan.joung@sk.com (mailing list archive) |
---|---|
State | Accepted |
Commit | 351bc761338d9be29065c2b99e603bab336792b7 |
Headers | show |
Series | [f2fs-dev,v2] f2fs: optimize f2fs DIO overwrites | expand |
On 3/17/25 21:36, Yohan Joung wrote: > this is unnecessary when we know we are overwriting already allocated > blocks and the overhead of starting a transaction can be significant > especially for multithreaded workloads doing small writes. > > Signed-off-by: Yohan Joung <yohan.joung@sk.com> Reviewed-by: Chao Yu <chao@kernel.org> Thanks,
Hello: This patch was applied to jaegeuk/f2fs.git (dev) by Jaegeuk Kim <jaegeuk@kernel.org>: On Mon, 17 Mar 2025 22:36:11 +0900 you wrote: > this is unnecessary when we know we are overwriting already allocated > blocks and the overhead of starting a transaction can be significant > especially for multithreaded workloads doing small writes. > > Signed-off-by: Yohan Joung <yohan.joung@sk.com> > --- > fs/f2fs/data.c | 8 +++++++- > 1 file changed, 7 insertions(+), 1 deletion(-) Here is the summary with links: - [f2fs-dev,v2] f2fs: optimize f2fs DIO overwrites https://git.kernel.org/jaegeuk/f2fs/c/351bc761338d You are awesome, thank you!
diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c index d872f785a996..d99ec9370b1d 100644 --- a/fs/f2fs/data.c +++ b/fs/f2fs/data.c @@ -4181,7 +4181,13 @@ static int f2fs_iomap_begin(struct inode *inode, loff_t offset, loff_t length, map.m_next_pgofs = &next_pgofs; map.m_seg_type = f2fs_rw_hint_to_seg_type(F2FS_I_SB(inode), inode->i_write_hint); - if (flags & IOMAP_WRITE) + + /* + * If the blocks being overwritten are already allocated, + * f2fs_map_lock and f2fs_balance_fs are not necessary. + */ + if ((flags & IOMAP_WRITE) && + !f2fs_overwrite_io(inode, offset, length)) map.m_may_create = true; err = f2fs_map_blocks(inode, &map, F2FS_GET_BLOCK_DIO);
this is unnecessary when we know we are overwriting already allocated blocks and the overhead of starting a transaction can be significant especially for multithreaded workloads doing small writes. Signed-off-by: Yohan Joung <yohan.joung@sk.com> --- fs/f2fs/data.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-)