Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1629760

[PATCH 2/2] f2fs: enable small discard by default

Path csiph.com!aioe.org!bofh.it!news.nic.it!robomod
From Chao Yu <chao@kernel.org>
Newsgroups linux.kernel
Subject [PATCH 2/2] f2fs: enable small discard by default
Date Mon, 24 Apr 2017 18:30:02 +0200
Message-ID <tzP2a-Rd-15@gated-at.bofh.it> (permalink)
References <tzP29-Rd-1@gated-at.bofh.it>
X-Original-To jaegeuk@kernel.org
X-Mailer git-send-email 2.12.2.575.gb14f27f
Sender robomod@news.nic.it
List-ID <linux-kernel.vger.kernel.org>
X-Mailing-List linux-kernel@vger.kernel.org
Approved robomod@news.nic.it
Lines 44
Organization linux.* mail to news gateway
X-Original-Cc linux-f2fs-devel@lists.sourceforge.net, linux-kernel@vger.kernel.org, Chao Yu <yuchao0@huawei.com>
X-Original-Date Tue, 25 Apr 2017 00:21:35 +0800
X-Original-Message-ID <20170424162135.5566-2-chao@kernel.org>
X-Original-References <20170424162135.5566-1-chao@kernel.org>
X-Original-Sender linux-kernel-owner@vger.kernel.org
Xref csiph.com linux.kernel:1629760

Show key headers only | View raw


From: Chao Yu <yuchao0@huawei.com>

This patch start to enable 4K granularity small discard by default
when realtime discard is on, so, in seriously fragmented space,
small size discard can be issued in time to avoid useless storage
space occupying of invalid filesystem's data, then performance of
flash storage can be recovered.

Signed-off-by: Chao Yu <yuchao0@huawei.com>
---
 fs/f2fs/f2fs.h    | 4 ++--
 fs/f2fs/segment.c | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/fs/f2fs/f2fs.h b/fs/f2fs/f2fs.h
index e2d9a8d9101e..c620e98dcaa6 100644
--- a/fs/f2fs/f2fs.h
+++ b/fs/f2fs/f2fs.h
@@ -230,8 +230,8 @@ struct discard_cmd_control {
 	struct list_head wait_list;		/* store on-flushing entries */
 	wait_queue_head_t discard_wait_queue;	/* waiting queue for wake-up */
 	struct mutex cmd_lock;
-	int nr_discards;			/* # of discards in the list */
-	int max_discards;			/* max. discards to be issued */
+	unsigned int nr_discards;		/* # of discards in the list */
+	unsigned int max_discards;		/* max. discards to be issued */
 	unsigned int undiscard_blks;		/* # of undiscard blocks */
 	atomic_t issued_discard;		/* # of issued discard */
 	atomic_t issing_discard;		/* # of issing discard */
diff --git a/fs/f2fs/segment.c b/fs/f2fs/segment.c
index 8097b4c8c7c7..eebe721f43c1 100644
--- a/fs/f2fs/segment.c
+++ b/fs/f2fs/segment.c
@@ -1365,7 +1365,7 @@ static int create_discard_cmd_control(struct f2fs_sb_info *sbi)
 	atomic_set(&dcc->issing_discard, 0);
 	atomic_set(&dcc->discard_cmd_cnt, 0);
 	dcc->nr_discards = 0;
-	dcc->max_discards = 0;
+	dcc->max_discards = MAIN_SEGS(sbi) << sbi->log_blocks_per_seg;
 	dcc->undiscard_blks = 0;
 	dcc->root = RB_ROOT;
 
-- 
2.12.2.575.gb14f27f

Back to linux.kernel | Previous | NextPrevious in thread | Find similar | Unroll thread


Thread

[PATCH 1/2] f2fs: delay awaking discard thread Chao Yu <chao@kernel.org> - 2017-04-24 18:30 +0200
  [PATCH 2/2] f2fs: enable small discard by default Chao Yu <chao@kernel.org> - 2017-04-24 18:30 +0200

csiph-web