From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?utf-8?B?7J207LC966eM?= Subject: Re: [PATCH V2] f2fs: check all ones or zeros bitmap with bitops for better mount performance Date: Mon, 28 Oct 2013 11:19:56 +0900 Message-ID: <003501ced384$31fb7530$95f25f90$@samsung.com> References: <000401ced092$28087a90$78196fb0$@samsung.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from sog-mx-3.v43.ch3.sourceforge.com ([172.29.43.193] helo=mx.sourceforge.net) by sfs-ml-1.v29.ch3.sourceforge.com with esmtp (Exim 4.76) (envelope-from ) id 1VacR4-0003kf-1S for linux-f2fs-devel@lists.sourceforge.net; Mon, 28 Oct 2013 02:20:06 +0000 Received: from mailout2.samsung.com ([203.254.224.25]) by sog-mx-3.v43.ch3.sourceforge.com with esmtp (Exim 4.76) id 1VacR1-0001yi-Kr for linux-f2fs-devel@lists.sourceforge.net; Mon, 28 Oct 2013 02:20:06 +0000 Received: from epcpsbgr4.samsung.com (u144.gpu120.samsung.co.kr [203.254.230.144]) by mailout2.samsung.com (Oracle Communications Messaging Server 7u4-24.01 (7.0.4.24.0) 64bit (built Nov 17 2011)) with ESMTP id <0MVC00JZGX52VPE0@mailout2.samsung.com> for linux-f2fs-devel@lists.sourceforge.net; Mon, 28 Oct 2013 11:19:57 +0900 (KST) In-reply-to: <000401ced092$28087a90$78196fb0$@samsung.com> Content-language: ko List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: linux-f2fs-devel-bounces@lists.sourceforge.net To: 'Chao Yu' , jaegeuk.kim@samsung.com Cc: linux-fsdevel@vger.kernel.org, =?utf-8?B?J+iwreWnnSc=?= , linux-kernel@vger.kernel.org, linux-f2fs-devel@lists.sourceforge.net VG8gY2hlY2sgd2hldGhlciBiaXRtYXAgYXJlIGFsbCB6ZXJvcyBvciBhbGwgb25lcywgSSB0aGlu ayBtZW1jbXAgaXMgbW9yZSBuZWF0LgpCdXQgSSBkb24ndCBrbm93IGV4YWN0bHkgcGVyZm9ybWFu Y2UgZ2FwIGJldHdlZW4gbWVtY21wIGFuZCBmaW5kX25leHRfYml0LgoKCi0tLS0tT3JpZ2luYWwg TWVzc2FnZS0tLS0tCkZyb206IENoYW8gWXUgW21haWx0bzpjaGFvMi55dUBzYW1zdW5nLmNvbV0g ClNlbnQ6IFRodXJzZGF5LCBPY3RvYmVyIDI0LCAyMDEzIDU6MjEgUE0KVG86IGphZWdldWsua2lt QHNhbXN1bmcuY29tCkNjOiBsaW51eC1mc2RldmVsQHZnZXIua2VybmVsLm9yZzsgJ+iwreWnnSc7 IGxpbnV4LWtlcm5lbEB2Z2VyLmtlcm5lbC5vcmc7IGxpbnV4LWYyZnMtZGV2ZWxAbGlzdHMuc291 cmNlZm9yZ2UubmV0ClN1YmplY3Q6IFtmMmZzLWRldl0gW1BBVENIIFYyXSBmMmZzOiBjaGVjayBh bGwgb25lcyBvciB6ZXJvcyBiaXRtYXAgd2l0aCBiaXRvcHMgZm9yIGJldHRlciBtb3VudCBwZXJm b3JtYW5jZQoKUHJldmlvdXNseSwgY2hlY2tfYmxvY2tfY291bnQgY2hlY2sgdmFsaWRfbWFwIHdp dGggYml0IGRhdGEgdHlwZSBpbiBjb21tb24gc2NlbmFyaW8gdGhhdCBzaXQgaGFzIGFsbCBvbmVz IG9yIHplcm9zIGJpdG1hcCwgaXQgbWFrZXMgbG93IG1vdW50IHBlcmZvcm1hbmNlLgpTbyBsZXQn cyBjaGVjayB0aGUgc3BlY2lhbCBiaXRtYXAgd2l0aCBpbnRlZ2VyIGRhdGEgdHlwZSBpbnN0ZWFk IG9mIHRoZSBiaXQgb25lLgoKdjI6CiAgICB1c2UgZmluZF9uZXh0X2JpdF9sZS9maW5kX25leHRf emVyb19iaXRfbGUgZm9yIGJldHRlciBwZXJmb3JtYW5jZSBhbmQgcmVhZGFibGUgYXMgSmFlZ2V1 ayBzdWdnZXN0ZWQuCgpTdWdnZXN0ZWQtYnk6IEphZWdldWsgS2ltIDxqYWVnZXVrLmtpbUBzYW1z dW5nLmNvbT4KU2lnbmVkLW9mZi1ieTogVGFuIFNodSA8c2h1LnRhbkBzYW1zdW5nLmNvbT4KU2ln bmVkLW9mZi1ieTogWXUgQ2hhbyA8Y2hhbzIueXVAc2Ftc3VuZy5jb20+Ci0tLQogZnMvZjJmcy9z ZWdtZW50LmggfCAgIDE3ICsrKysrKysrKysrKysrKysrCiAxIGZpbGUgY2hhbmdlZCwgMTcgaW5z ZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2ZzL2YyZnMvc2VnbWVudC5oIGIvZnMvZjJmcy9zZWdt ZW50LmggaW5kZXggN2Y5NGQ3OC4uZDI1YjZhZiAxMDA2NDQKLS0tIGEvZnMvZjJmcy9zZWdtZW50 LmgKKysrIGIvZnMvZjJmcy9zZWdtZW50LmgKQEAgLTU1Miw2ICs1NTIsMjMgQEAgc3RhdGljIGlu bGluZSB2b2lkIGNoZWNrX2Jsb2NrX2NvdW50KHN0cnVjdCBmMmZzX3NiX2luZm8gKnNiaSwKIAkv KiBjaGVjayBib3VuZGFyeSBvZiBhIGdpdmVuIHNlZ21lbnQgbnVtYmVyICovCiAJQlVHX09OKHNl Z25vID4gZW5kX3NlZ25vKTsKIAorCS8qIGNoZWNrIGFsbCBvbmVzIG9yIHplcm9zIHZhbGlkX21h cCAqLworCWlmIChHRVRfU0lUX1ZCTE9DS1MocmF3X3NpdCkgPT0gMCkgeworCQlpbnQgcG9zID0g ZmluZF9uZXh0X2JpdF9sZSgmcmF3X3NpdC0+dmFsaWRfbWFwLAorCQkJCQlzYmktPmJsb2Nrc19w ZXJfc2VnLAorCQkJCQkwKTsKKwkJaWYgKHBvcyAhPSBzYmktPmJsb2Nrc19wZXJfc2VnKQorCQkJ QlVHKCk7CisJCXJldHVybjsKKwl9IGVsc2UgaWYgKEdFVF9TSVRfVkJMT0NLUyhyYXdfc2l0KSA9 PSBzYmktPmJsb2Nrc19wZXJfc2VnKSB7CisJCWludCBwb3MgPSBmaW5kX25leHRfemVyb19iaXRf bGUoJnJhd19zaXQtPnZhbGlkX21hcCwKKwkJCQkJc2JpLT5ibG9ja3NfcGVyX3NlZywKKwkJCQkJ MCk7CisJCWlmIChwb3MgIT0gc2JpLT5ibG9ja3NfcGVyX3NlZykKKwkJCUJVRygpOworCQlyZXR1 cm47CisJfQorCiAJLyogY2hlY2sgYml0bWFwIHdpdGggdmFsaWQgYmxvY2sgY291bnQgKi8KIAlm b3IgKGkgPSAwOyBpIDwgc2JpLT5ibG9ja3NfcGVyX3NlZzsgaSsrKQogCQlpZiAoZjJmc190ZXN0 X2JpdChpLCByYXdfc2l0LT52YWxpZF9tYXApKQotLQoxLjcuOS41CgoKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9jdG9iZXIgV2ViaW5hcnM6IENvZGUgZm9yIFBlcmZvcm1hbmNlCkZyZWUgSW50ZWwg d2ViaW5hcnMgY2FuIGhlbHAgeW91IGFjY2VsZXJhdGUgYXBwbGljYXRpb24gcGVyZm9ybWFuY2Uu CkV4cGxvcmUgdGlwcyBmb3IgTVBJLCBPcGVuTVAsIGFkdmFuY2VkIHByb2ZpbGluZywgYW5kIG1v cmUuIEdldCB0aGUgbW9zdCBmcm9tIAp0aGUgbGF0ZXN0IEludGVsIHByb2Nlc3NvcnMgYW5kIGNv cHJvY2Vzc29ycy4gU2VlIGFic3RyYWN0cyBhbmQgcmVnaXN0ZXIgPgpodHRwOi8vcHViYWRzLmcu ZG91YmxlY2xpY2submV0L2dhbXBhZC9jbGs/aWQ9NjAxMzU5OTEmaXU9LzQxNDAvb3N0Zy5jbGt0 cmsKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTGludXgt ZjJmcy1kZXZlbCBtYWlsaW5nIGxpc3QKTGludXgtZjJmcy1kZXZlbEBsaXN0cy5zb3VyY2Vmb3Jn ZS5uZXQKaHR0cHM6Ly9saXN0cy5zb3VyY2Vmb3JnZS5uZXQvbGlzdHMvbGlzdGluZm8vbGludXgt ZjJmcy1kZXZlbAoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPY3RvYmVyIFdlYmluYXJzOiBDb2Rl IGZvciBQZXJmb3JtYW5jZQpGcmVlIEludGVsIHdlYmluYXJzIGNhbiBoZWxwIHlvdSBhY2NlbGVy YXRlIGFwcGxpY2F0aW9uIHBlcmZvcm1hbmNlLgpFeHBsb3JlIHRpcHMgZm9yIE1QSSwgT3Blbk1Q LCBhZHZhbmNlZCBwcm9maWxpbmcsIGFuZCBtb3JlLiBHZXQgdGhlIG1vc3QgZnJvbSAKdGhlIGxh dGVzdCBJbnRlbCBwcm9jZXNzb3JzIGFuZCBjb3Byb2Nlc3NvcnMuIFNlZSBhYnN0cmFjdHMgYW5k IHJlZ2lzdGVyID4KaHR0cDovL3B1YmFkcy5nLmRvdWJsZWNsaWNrLm5ldC9nYW1wYWQvY2xrP2lk PTYwMTM1OTkxJml1PS80MTQwL29zdGcuY2xrdHJrCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCkxpbnV4LWYyZnMtZGV2ZWwgbWFpbGluZyBsaXN0CkxpbnV4 LWYyZnMtZGV2ZWxAbGlzdHMuc291cmNlZm9yZ2UubmV0Cmh0dHBzOi8vbGlzdHMuc291cmNlZm9y Z2UubmV0L2xpc3RzL2xpc3RpbmZvL2xpbnV4LWYyZnMtZGV2ZWwK From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755437Ab3J1CUC (ORCPT ); Sun, 27 Oct 2013 22:20:02 -0400 Received: from mailout2.samsung.com ([203.254.224.25]:54699 "EHLO mailout2.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755314Ab3J1CT6 convert rfc822-to-8bit (ORCPT ); Sun, 27 Oct 2013 22:19:58 -0400 X-AuditID: cbfee690-b7f3d6d000001c4a-d0-526dc9cd05e3 From: =?utf-8?B?7J207LC966eM?= To: "'Chao Yu'" , jaegeuk.kim@samsung.com Cc: linux-fsdevel@vger.kernel.org, =?utf-8?B?J+iwreWnnSc=?= , linux-kernel@vger.kernel.org, linux-f2fs-devel@lists.sourceforge.net References: <000401ced092$28087a90$78196fb0$@samsung.com> In-reply-to: <000401ced092$28087a90$78196fb0$@samsung.com> Subject: RE: [f2fs-dev] [PATCH V2] f2fs: check all ones or zeros bitmap with bitops for better mount performance Date: Mon, 28 Oct 2013 11:19:56 +0900 Message-id: <003501ced384$31fb7530$95f25f90$@samsung.com> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-transfer-encoding: 8BIT X-Mailer: Microsoft Outlook 14.0 Thread-index: AQJ6i6Dfb3BtsZq0jPxXbIKcIyyc4Zix8JSg Content-language: ko X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrAIsWRmVeSWpSXmKPExsVy+t8zA92zJ3ODDHatZbf43/SRzeL6rr9M FpcWuVvs2XuSxeLyrjlsFq0LzzM7sHnsXvCZyaNvyypGj8+b5AKYo7hsUlJzMstSi/TtErgy 7h+axVKwVLTi1ZOrbA2MzwS7GDk5JARMJHqXXWaEsMUkLtxbz9bFyMUhJLCMUeLSpkcsMEWf th9kgkgsYpRY8GYblPOXUaJ3QwM7SBWbgJnE6W8nwWwRAVuJuRtvMYMUMQvMZpRYuHoHE0hC SMBS4nHbE9YuRg4OTgErie7J6SBhYYEiiT8t+5lBbBYBVYlFu3vBbF6g8kO9L1ggbEGJH5Pv sYC0MguoS0yZkgsSZhbQlnjy7gIrxKEKEjvOvmaEOMFIYsL5B0wQNSIS+168g/ryGrvEgrOO EKsEJL5NPgQ2UkJAVmLTAWaIEkmJgytusExglJiFZPEshMWzkCyehWTBAkaWVYyiqQXJBcVJ 6UUmesWJucWleel6yfm5mxghsTlhB+O9A9aHGJOBtk9klhJNzgfGdl5JvKGxmZGFqYmpsZG5 pRlpwkrivGqPkoKEBNITS1KzU1MLUovii0pzUosPMTJxcEo1MMqd/5hteNpwUQJ3Za5uwLEm 5k/WG3dGc5xptnU/ycnhu/+Fzv5VhqaL9jVNOPL6cupBx7bq++4NugFSLKnmjROv7PczmRvj aniSLUb/ktCCbd/fRd28r7pC5ETgllshM/463U3sYVH8a9ocePuEv+yiL3djbjGZz7/FvP+b 55t9MmE6PaaXdymxFGckGmoxFxUnAgB5EXM34wIAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrHKsWRmVeSWpSXmKPExsVy+t9jAd2zJ3ODDI6uZLL43/SRzeL6rr9M FpcWuVvs2XuSxeLyrjlsFq0LzzM7sHnsXvCZyaNvyypGj8+b5AKYoxoYbTJSE1NSixRS85Lz UzLz0m2VvIPjneNNzQwMdQ0tLcyVFPISc1NtlVx8AnTdMnOA9ioplCXmlAKFAhKLi5X07TBN CA1x07WAaYzQ9Q0JgusxMkADCesYM+4fmsVSsFS04tWTq2wNjM8Euxg5OSQETCQ+bT/IBGGL SVy4t56ti5GLQ0hgEaPEgjfbmCCcv4wSvRsa2EGq2ATMJE5/OwlmiwjYSszdeIsZpIhZYDaj xMLVO8BGCQlYSjxue8LaxcjBwSlgJdE9OR0kLCxQJPGnZT8ziM0ioCqxaHcvmM0LVH6o9wUL hC0o8WPyPRaQVmYBdYkpU3JBwswC2hJP3l1ghThUQWLH2deMECcYSUw4/4AJokZEYt+Ld4wT GIVmIZk0C2HSLCSTZiHpWMDIsopRNLUguaA4KT3XSK84Mbe4NC9dLzk/dxMjOPafSe9gXNVg cYhRgINRiYd3w9rcICHWxLLiytxDjBIczEoivHwVQCHelMTKqtSi/Pii0pzU4kOMyUB/TmSW Ek3OB6alvJJ4Q2MTMyNLIzMLIxNzc9KElcR5D7ZaBwoJpCeWpGanphakFsFsYeLglGpgtFhZ H7Bkqce2ews1+/c0+W1KTtqp1zsjasFur2e6LTevTbTrylrL4+x9XezNs8upai4vn91nKOO/ nZ1Vcl7xWVTJTgHF0omlAt360k+2B9s6t3q8W9/RNIm90Mxtq/9W8XeuXy2eRAqVtISw9KYt aql1XH5aPyzNeeoCV0676QwLTAvSeK4rsRRnJBpqMRcVJwIAkVjRYEEDAAA= DLP-Filter: Pass X-MTR: 20000000000000000@CPGS X-CFilter-Loop: Reflected Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org To check whether bitmap are all zeros or all ones, I think memcmp is more neat. But I don't know exactly performance gap between memcmp and find_next_bit. -----Original Message----- From: Chao Yu [mailto:chao2.yu@samsung.com] Sent: Thursday, October 24, 2013 5:21 PM To: jaegeuk.kim@samsung.com Cc: linux-fsdevel@vger.kernel.org; '谭姝'; linux-kernel@vger.kernel.org; linux-f2fs-devel@lists.sourceforge.net Subject: [f2fs-dev] [PATCH V2] f2fs: check all ones or zeros bitmap with bitops for better mount performance Previously, check_block_count check valid_map with bit data type in common scenario that sit has all ones or zeros bitmap, it makes low mount performance. So let's check the special bitmap with integer data type instead of the bit one. v2: use find_next_bit_le/find_next_zero_bit_le for better performance and readable as Jaegeuk suggested. Suggested-by: Jaegeuk Kim Signed-off-by: Tan Shu Signed-off-by: Yu Chao --- fs/f2fs/segment.h | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/fs/f2fs/segment.h b/fs/f2fs/segment.h index 7f94d78..d25b6af 100644 --- a/fs/f2fs/segment.h +++ b/fs/f2fs/segment.h @@ -552,6 +552,23 @@ static inline void check_block_count(struct f2fs_sb_info *sbi, /* check boundary of a given segment number */ BUG_ON(segno > end_segno); + /* check all ones or zeros valid_map */ + if (GET_SIT_VBLOCKS(raw_sit) == 0) { + int pos = find_next_bit_le(&raw_sit->valid_map, + sbi->blocks_per_seg, + 0); + if (pos != sbi->blocks_per_seg) + BUG(); + return; + } else if (GET_SIT_VBLOCKS(raw_sit) == sbi->blocks_per_seg) { + int pos = find_next_zero_bit_le(&raw_sit->valid_map, + sbi->blocks_per_seg, + 0); + if (pos != sbi->blocks_per_seg) + BUG(); + return; + } + /* check bitmap with valid block count */ for (i = 0; i < sbi->blocks_per_seg; i++) if (f2fs_test_bit(i, raw_sit->valid_map)) -- 1.7.9.5 ------------------------------------------------------------------------------ October Webinars: Code for Performance Free Intel webinars can help you accelerate application performance. Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from the latest Intel processors and coprocessors. See abstracts and register > http://pubads.g.doubleclick.net/gampad/clk?id=60135991&iu=/4140/ostg.clktrk _______________________________________________ Linux-f2fs-devel mailing list Linux-f2fs-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel