From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751972AbbJLJIP (ORCPT ); Mon, 12 Oct 2015 05:08:15 -0400 Received: from mailout4.samsung.com ([203.254.224.34]:34251 "EHLO mailout4.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751667AbbJLJIO (ORCPT ); Mon, 12 Oct 2015 05:08:14 -0400 X-AuditID: cbfee61b-f79d56d0000048c5-2d-561b787c170e From: Chao Yu To: Jaegeuk Kim Cc: linux-f2fs-devel@lists.sourceforge.net, linux-kernel@vger.kernel.org Subject: [PATCH 4/5] f2fs: readahead for free nids building Date: Mon, 12 Oct 2015 17:07:33 +0800 Message-id: <021201d104cd$866e08e0$934a1aa0$@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: AdEEzQX5CApdLb1ORa6t2pbOyM/T3w== Content-language: zh-cn X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrDLMWRmVeSWpSXmKPExsVy+t9jQd2aCukwg8tP9C2erJ/FbHFpkbvF 5V1z2ByYPTat6mTz2L3gM5PH501yAcxRXDYpqTmZZalF+nYJXBkPP15hK5jKWdE7+xFrA+M8 9i5GTg4JAROJOStaGSFsMYkL99azdTFycQgJzGKUuHbuDQuE84pR4sOkpywgVWwCKhLLO/4z gdgiQPahRZfBJjELeEg0dnxnBbGFBawlvr9fzgxiswioSkw8/xysnlfAUqLt6itmCFtQ4sfk eywQvVoS63ceZ4Kw5SU2r3nLDHGRgsSOs68ZIXbpSSyZf58NokZcYuORWywTGIHORBg1C8mo WUhGzULSsoCRZRWjRGpBckFxUnquUV5quV5xYm5xaV66XnJ+7iZGcBg/k97BeHiX+yFGAQ5G JR5eji1SYUKsiWXFlbmHGCU4mJVEePcGSYcJ8aYkVlalFuXHF5XmpBYfYpTmYFES571xiCFM SCA9sSQ1OzW1ILUIJsvEwSnVwDhVfRfb5bdTkmceOHxhfWKMZvqt1NIEvuCzs3evDo5IYNTw NK/TePPwg+aPhQ/6Z1lorvXlSd1/brbZnKMvfY847j+2x2SLxkaxlrK2y084zmQ0qGn9Xr/l 9OEcvfyK9oenBLfNFlYT8HH+Gau07Q5Xp8J1vVV1Rm2bivP5S8unZd6wqL3pn6DEUpyRaKjF XFScCADLXpWCXwIAAA== Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org When there is no free nid in nid cache, all new node allocaters stop their job to wait for reloading of free nids, however reloading is synchronous as we will read 4 NAT pages for building nid cache, it cause the long latency. This patch tries to readahead more NAT pages with READA request flag after reloading of free nids. It helps to improve performance when users allocate node id intensively. Env: Sandisk 32G sd card time for i in `seq 1 60000`; { echo -n > /mnt/f2fs/$i; echo XXXXXX > /mnt/f2fs/$i;} Before: real 0m2.814s user 0m1.220s sys 0m1.536s After: real 0m2.711s user 0m1.136s sys 0m1.568s Signed-off-by: Chao Yu --- fs/f2fs/node.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/fs/f2fs/node.c b/fs/f2fs/node.c index ad98e35..14f4606 100644 --- a/fs/f2fs/node.c +++ b/fs/f2fs/node.c @@ -1560,6 +1560,9 @@ static void build_free_nids(struct f2fs_sb_info *sbi) remove_free_nid(nm_i, nid); } mutex_unlock(&curseg->curseg_mutex); + + ra_meta_pages(sbi, NAT_BLOCK_OFFSET(nm_i->next_scan_nid), + FREE_NID_PAGES, META_NAT, false); } /* -- 2.5.2