All the mail mirrored from lore.kernel.org
 help / color / mirror / Atom feed
* [f2fs-dev] [PATCH v4] f2fs: compress: avoid unnecessary check in f2fs_prepare_compress_overwrite
@ 2021-05-07  9:44 Fengnan Chang
  2021-05-10 15:43 ` Jaegeuk Kim
  0 siblings, 1 reply; 11+ messages in thread
From: Fengnan Chang @ 2021-05-07  9:44 UTC (permalink / raw)
  To: jaegeuk, chao, linux-f2fs-devel; +Cc: Fengnan Chang

when write compressed file with O_TRUNC, there will be a lot of
unnecessary check valid blocks in f2fs_prepare_compress_overwrite,
especially when written in page size, remove it.

This patch will not bring significant performance improvements, I test
this on mobile phone, use androbench, the sequential write test case was
open file with O_TRUNC, set write size to 4KB,  performance improved
about 2%-3%. If write size set to 32MB, performance improved about 0.5%.

Signed-off-by: Fengnan Chang <changfengnan@vivo.com>
---
 fs/f2fs/data.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c
index cf935474ffba..b9ec7b182f45 100644
--- a/fs/f2fs/data.c
+++ b/fs/f2fs/data.c
@@ -3303,9 +3303,17 @@ static int f2fs_write_begin(struct file *file, struct address_space *mapping,
 #ifdef CONFIG_F2FS_FS_COMPRESSION
 	if (f2fs_compressed_file(inode)) {
 		int ret;
+		pgoff_t end = (i_size_read(inode) + PAGE_SIZE - 1) >> PAGE_SHIFT;

 		*fsdata = NULL;

+		/*
+		 * when write pos is bigger than inode size ,f2fs_prepare_compress_overwrite
+		 * always return 0, so check pos first to avoid this.
+		 */
+		if (index >= end)
+			goto repeat;
+
 		ret = f2fs_prepare_compress_overwrite(inode, pagep,
 							index, fsdata);
 		if (ret < 0) {
--
2.29.0



_______________________________________________
Linux-f2fs-devel mailing list
Linux-f2fs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel

^ permalink raw reply related	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2021-05-18  1:23 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-05-07  9:44 [f2fs-dev] [PATCH v4] f2fs: compress: avoid unnecessary check in f2fs_prepare_compress_overwrite Fengnan Chang
2021-05-10 15:43 ` Jaegeuk Kim
2021-05-11 11:10   ` [f2fs-dev] 答复: " changfengnan
2021-05-11 21:50     ` Jaegeuk Kim
2021-05-12  1:20       ` Gao Xiang
2021-05-12  1:52       ` Chao Yu
2021-05-13  1:41         ` [f2fs-dev] 答复: " changfengnan
2021-05-13 21:17         ` [f2fs-dev] " Eric Biggers
2021-05-14  1:15           ` Chao Yu
2021-05-17 21:18             ` Eric Biggers
2021-05-18  1:23               ` Chao Yu

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.