Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S964934AbbLWJsn (ORCPT ); Wed, 23 Dec 2015 04:48:43 -0500 Received: from mailout3.samsung.com ([203.254.224.33]:34836 "EHLO mailout3.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755645AbbLWJrp (ORCPT ); Wed, 23 Dec 2015 04:47:45 -0500 X-AuditID: cbfee61b-f793c6d00000236c-73-567a6dbe38d1 From: Chao Yu To: "'Jaegeuk Kim'" Cc: linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-f2fs-devel@lists.sourceforge.net References: <1450832388-29118-1-git-send-email-jaegeuk@kernel.org> <1450832388-29118-4-git-send-email-jaegeuk@kernel.org> In-reply-to: <1450832388-29118-4-git-send-email-jaegeuk@kernel.org> Subject: RE: [f2fs-dev] [PATCH 4/4] f2fs: call f2fs_balance_fs only when node was changed Date: Wed, 23 Dec 2015 17:46:59 +0800 Message-id: <010b01d13d66$f85f2ac0$e91d8040$@samsung.com> MIME-version: 1.0 Content-type: text/plain; charset=us-ascii Content-transfer-encoding: 7bit X-Mailer: Microsoft Outlook 14.0 Thread-index: AQG9bRZC60cJl2SGICHadMcbSzM9lgJNmWQVnu1pYhA= Content-language: zh-cn X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrOLMWRmVeSWpSXmKPExsVy+t9jAd19uVVhBtfOG1s8WT+L2eLSIneL PXtPslhc3jWHzYHFY9OqTjaP3Qs+M3l83iQXwBzFZZOSmpNZllqkb5fAlfFh7Q+mgr0CFa8n z2BqYNzO28XIwSEhYCLRe1e3i5ETyBSTuHBvPVsXIxeHkMBSRonfB3eyQjivGCUOf9nPClLF JqAisbzjPxOILSKgJtG7bwqYzSyQKTGh/wU7iC0kUC2xuLuNDcTmFHCWmHr1IyOILSwQLbH/ 0BEWEJtFQFXixNlvYDN5BSwlvjx/xwxhC0r8mHyPBWKmlsT6nceh5stLbF7zlhniUgWJHWdf M4I8ICJgJdFxJhmiRFxi45FbLBMYhWYhmTQLyaRZSCbNQtKygJFlFaNEakFyQXFSeq5RXmq5 XnFibnFpXrpecn7uJkZw8D+T3sF4eJf7IUYBDkYlHl6HtsowIdbEsuLK3EOMEhzMSiK86e+A QrwpiZVVqUX58UWlOanFhxilOViUxHn3XYoMExJITyxJzU5NLUgtgskycXBKNTCaLeqfdohx boNQ+eUTGwJMTR7KHZ6VfIXv3enCD58a9a6kOU6y3PmX97c41+Q/S09pV/a4H+bS2D2XOXfT gTunH+7n+DqxLU3mGs/S2YfulC7MeZqmf/Geafu+jXcZEo9nt/7MDatnszS2VV0sd6LwuKwF q2hmn+JT9d5dBQF359w8+tn+1H0dJZbijERDLeai4kQApgmuNXoCAAA= Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2284 Lines: 76 Hi Jaegeuk, > -----Original Message----- > From: Jaegeuk Kim [mailto:jaegeuk@kernel.org] > Sent: Wednesday, December 23, 2015 9:00 AM > To: linux-kernel@vger.kernel.org; linux-fsdevel@vger.kernel.org; > linux-f2fs-devel@lists.sourceforge.net > Cc: Jaegeuk Kim > Subject: [f2fs-dev] [PATCH 4/4] f2fs: call f2fs_balance_fs only when node was changed > > If user tries to update or read data, we don't need to call f2fs_balance_fs > which triggers f2fs_gc, which increases unnecessary long latency. One missing case is get_data_block_dio, how about also covering it based on following patch? >From 7175efac7473e7a04285055c69edfb7432f8ca4e Mon Sep 17 00:00:00 2001 From: Chao Yu Date: Wed, 23 Dec 2015 17:11:43 +0800 Subject: [PATCH] f2fs: reduce covered region of sbi->cp_rwsem in f2fs_map_blocks Only cover sbi->cp_rwsem on one dnode page's allocation and modification instead of multiple's in f2fs_map_blocks, it can reduce the covered region of cp_rwsem, then we can avoid potential long time delay for concurrent checkpointer. Signed-off-by: Chao Yu --- fs/f2fs/data.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c index 8f8f8b0..3c83b16 100644 --- a/fs/f2fs/data.c +++ b/fs/f2fs/data.c @@ -594,7 +594,7 @@ int f2fs_map_blocks(struct inode *inode, struct f2fs_map_blocks *map, } if (create) - f2fs_lock_op(F2FS_I_SB(inode)); + f2fs_lock_op(sbi); /* When reading holes, we need its node page */ set_new_dnode(&dn, inode, NULL, NULL, 0); @@ -651,6 +651,11 @@ get_next: allocated = false; f2fs_put_dnode(&dn); + if (create) { + f2fs_unlock_op(sbi); + f2fs_lock_op(sbi); + } + set_new_dnode(&dn, inode, NULL, NULL, 0); err = get_dnode_of_data(&dn, pgofs, mode); if (err) { @@ -706,7 +711,7 @@ put_out: f2fs_put_dnode(&dn); unlock_out: if (create) - f2fs_unlock_op(F2FS_I_SB(inode)); + f2fs_unlock_op(sbi); out: trace_f2fs_map_blocks(inode, map, err); return err; -- 2.6.3 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/