From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-13.8 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,INCLUDES_CR_TRAILER,INCLUDES_PATCH,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 56276C4338F for ; Tue, 17 Aug 2021 00:27:46 +0000 (UTC) Received: from lists.sourceforge.net (lists.sourceforge.net [216.105.38.7]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 03A7A60F55 for ; Tue, 17 Aug 2021 00:27:45 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 03A7A60F55 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=kernel.org Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=lists.sourceforge.net Received: from [127.0.0.1] (helo=sfs-ml-2.v29.lw.sourceforge.com) by sfs-ml-2.v29.lw.sourceforge.com with esmtp (Exim 4.92.3) (envelope-from ) id 1mFmxF-0000Xh-E7; Tue, 17 Aug 2021 00:27:45 +0000 Received: from [172.30.20.202] (helo=mx.sourceforge.net) by sfs-ml-2.v29.lw.sourceforge.com with esmtps (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.92.3) (envelope-from ) id 1mFmxE-0000XZ-Ez for linux-f2fs-devel@lists.sourceforge.net; Tue, 17 Aug 2021 00:27:44 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=sourceforge.net; s=x; h=In-Reply-To:Content-Transfer-Encoding:Content-Type: MIME-Version:References:Message-ID:Subject:Cc:To:From:Date:Sender:Reply-To: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=0ARUAzxKkV2XpAP+LRK/KgqOdm6f9GzlMZVegChw6xo=; b=WQj023LOIG4FtWZrWTNPE9QkxT mP80AnifA8BXdEoXIrLlMbpdG8WcnO+rTSD7s9C9Pgt2xxEKTok5fJ+uVLMEq0ltU9Eq8ihNVFomX 5hWGHnK3fCbYhWtcBCaTL4vwx6v7c//8938hdSOBqfbPRsSZo867SQnPJMkQCRNTRKoQ=; DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=sf.net; s=x ; h=In-Reply-To:Content-Transfer-Encoding:Content-Type:MIME-Version: References:Message-ID:Subject:Cc:To:From:Date:Sender:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=0ARUAzxKkV2XpAP+LRK/KgqOdm6f9GzlMZVegChw6xo=; b=hMcqrmaMOQnVKhSdqLFmHQq8hT ObMBR1v168uppA6nVGSsiVkX8YmKdNm13oqH0sEhJmv/FezcobsPfA4uKRHDjZEOUh6CaqRlrCKw8 YCmSMQ+B3ttlpvDQQC9muHwSKAoXzpEJh1VGJBjA5f+Jtu5JlWB/ztwoL38d817NWLLk=; Received: from mail.kernel.org ([198.145.29.99]) by sfi-mx-2.v28.lw.sourceforge.com with esmtps (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.92.3) id 1mFmxE-00063r-A9 for linux-f2fs-devel@lists.sourceforge.net; Tue, 17 Aug 2021 00:27:45 +0000 Received: by mail.kernel.org (Postfix) with ESMTPSA id 4C36760F55; Tue, 17 Aug 2021 00:27:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1629160057; bh=JAyjnFSiVYPluKRbzgYs1WrwR65TQsHZgz7pFKAhH9Y=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=szi2GdEolnaOQo9jSGh1cxvC4y9mRj+tBO4Q+L6m9pohIP7BlRkzN6W3FH+IaPVS4 0kAf49PqrI2vAFVfTibz/Dak86zdCcQwu5cRt84nlVfbylpOTbWhhYMF2t5Yy3vSPV UNMwfZSzxplB1xynRQ63kDBZVMlPIQ6m+XuhFBN84JWlOycLyastH5FBmm9vDXesM6 75y/ifrf25DuDEWUso/Cj4c7PgUCQRsAed6rijj4wI2EDQWgDrZXN4a7T4GAEAm3MU 5vez6v3ZNlJMpjyqcl6yeJkwFIggovYz+zrRJrI2usz+7F8vRE8cRCNFhJrsb5h15h vxZu2B9TF+Ovw== Date: Mon, 16 Aug 2021 17:27:35 -0700 From: Jaegeuk Kim To: Chao Yu Message-ID: References: <2692c9c0-bb9f-0dd2-f0ca-6abb89e34c47@kernel.org> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <2692c9c0-bb9f-0dd2-f0ca-6abb89e34c47@kernel.org> X-Headers-End: 1mFmxE-00063r-A9 Subject: Re: [f2fs-dev] [PATCH v6] f2fs: introduce /sys/fs/f2fs//fsck_stack node X-BeenThere: linux-f2fs-devel@lists.sourceforge.net X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: linux-f2fs-devel@lists.sourceforge.net, linux-kernel@vger.kernel.org, =?utf-8?B?5p2O5oms6Z+s?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: linux-f2fs-devel-bounces@lists.sourceforge.net T24gMDgvMTYsIENoYW8gWXUgd3JvdGU6Cj4gT24gMjAyMS84LzE2IDEyOjAyLCDmnY7miazpn6wg d3JvdGU6Cj4gPiBISSBDaGFvLAo+ID4gPiA+IFNCSV9ORUVEX0ZTQ0sgaXMgYW4gaW5kaWNhdG9y IHRoYXQgZnNjay5mMmZzIG5lZWRzIHRvIGJlIHRyaWdnZXJlZCwKPiA+ID4gPiB0aGlzIGZsYWcg aXMgc2V0IGluIHRvbyBtYW55IHBsYWNlcy4gRm9yIHNvbWUgc2NlbmVzIHRoYXQgYXJlIG5vdCB2 ZXJ5Cj4gPiA+ID4gcmVwcm9kdWNpYmxlLCBhZGRpbmcgc3RhY2sgaW5mb3JtYXRpb24gd2lsbCBo ZWxwIGxvY2F0ZSB0aGUgcHJvYmxlbS4KPiA+ID4gPiAKPiA+ID4gPiBMZXQncyByZWNvcmQgYWxs IGZzY2sgc3RhY2sgaGlzdG9yeSwgSSBhZGRlZCBGMkZTX0ZTQ0tfU1RBQ0tfVFJBQ0UKPiA+ID4g PiBjb25maWd1cmF0aW9uIG9wdGlvbnMgYW5kIHN5c2ZzIG5vZGVzLiBBZnRlciBvcGVuaW5nIHRo ZSBjb25maWd1cmF0aW9uCj4gPiA+ID4gb3B0aW9ucyBhbmQgZW5hYmxpbmcgdGhlIG5vZGUsIGl0 IHdpbGwgc3RhcnQgcmVjb3JkaW5nLiBUaGUgcmVjb3JkZWQKPiA+ID4gPiBzdGFjayBpbmZvcm1h dGlvbiB3aWxsIG5vdCBiZSBjbGVhciwgYW5kIHdlIGNhbiBnZXQgaW5mb3JtYXRpb24gZm9ybQo+ ID4gPiA+IGtlcm5lbCBsb2cuCj4gPiA+ID4gCj4gPiA+ID4gU2lnbmVkLW9mZi1ieTogWWFuZ3Rh byBMaSA8ZnJhbmsubGlAdml2by5jb20+Cj4gPiA+ID4gLS0tCj4gPiA+ID4gICAgRG9jdW1lbnRh dGlvbi9BQkkvdGVzdGluZy9zeXNmcy1mcy1mMmZzIHwgIDcgKysrKwo+ID4gPiA+ICAgIGZzL2Yy ZnMvS2NvbmZpZyAgICAgICAgICAgICAgICAgICAgICAgICB8IDEwICsrKysrKwo+ID4gPiA+ICAg IGZzL2YyZnMvZjJmcy5oICAgICAgICAgICAgICAgICAgICAgICAgICB8IDQ1ICsrKysrKysrKysr KysrKysrKysrKysrKysKPiA+ID4gPiAgICBmcy9mMmZzL3N5c2ZzLmMgICAgICAgICAgICAgICAg ICAgICAgICAgfCAyNyArKysrKysrKysrKysrKysKPiA+ID4gPiAgICA0IGZpbGVzIGNoYW5nZWQs IDg5IGluc2VydGlvbnMoKykKPiA+ID4gPiAKPiA+ID4gPiBkaWZmIC0tZ2l0IGEvRG9jdW1lbnRh dGlvbi9BQkkvdGVzdGluZy9zeXNmcy1mcy1mMmZzIGIvRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGlu Zy9zeXNmcy1mcy1mMmZzCj4gPiA+ID4gaW5kZXggZWY0YjkyMThhZTFlLi4wNDdjMzk4MDkzY2Yg MTAwNjQ0Cj4gPiA+ID4gLS0tIGEvRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1mcy1m MmZzCj4gPiA+ID4gKysrIGIvRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1mcy1mMmZz Cj4gPiA+ID4gQEAgLTQ5MywzICs0OTMsMTAgQEAgQ29udGFjdDoJIkNoYW8gWXUiIDx5dWNoYW8w QGh1YXdlaS5jb20+Cj4gPiA+ID4gICAgRGVzY3JpcHRpb246CVdoZW4gQVRHQyBpcyBvbiwgaXQg Y29udHJvbHMgYWdlIHRocmVzaG9sZCB0byBieXBhc3MgR0NpbmcgeW91bmcKPiA+ID4gPiAgICAJ CWNhbmRpZGF0ZXMgd2hvc2UgYWdlIGlzIG5vdCBiZXlvbmQgdGhlIHRocmVzaG9sZCwgYnkgZGVm YXVsdCBpdCB3YXMKPiA+ID4gPiAgICAJCWluaXRpYWxpemVkIGFzIDYwNDgwMCBzZWNvbmRzIChl cXVhbHMgdG8gNyBkYXlzKS4KPiA+ID4gPiArCj4gPiA+ID4gK1doYXQ6CQkvc3lzL2ZzL2YyZnMv PGRpc2s+L2ZzY2tfc3RhY2sKPiA+ID4gPiArRGF0ZToJCUF1Z3VzdCAyMDIxCj4gPiA+ID4gK0Nv bnRhY3Q6CSJZYW5ndGFvIExpIiA8ZnJhbmsubGlAdml2by5jb20+Cj4gPiA+ID4gK0Rlc2NyaXB0 aW9uOglDb250cm9scyB0byBlbmFibGUvZGlzYWJsZSBmc2NrIHN0YWNrIHRyYWNlLCB5b3UgY2Fu IGdldCBzdGFjawo+ID4gPiA+ICsJCWluZm9ybWF0aW9uIGZyb20ga2VybmVsIGxvZy4gTm90ZSB0 aGF0IHRoZSByZWNvcmRlZCBzdGFjayBpbmZvcm1hdGlvbgo+ID4gPiA+ICsJCXdpbGwgbm90IGJl IGNsZWFyZWQuCj4gPiA+IAo+ID4gPiBBZ2FpbiwgcGxlYXNlIGRvbid0IGFkZCB0aGlzIGludG8g c3lzZnMuCj4gCj4gT2gsIEkgbWlzc2VkIHRvIGNoZWNrIHRoZSBkZXRhaWxzLi4uCj4gCj4gPiAK PiA+IEkgYWRkZWQgdGhpcyBub2RlLCBwYXJ0IG9mIHRoZSBpZGVhIGlzIHRvIHRyaWdnZXIgdGhl IGV4cG9ydCBvZiBzdGFjayBpbmZvcm1hdGlvbi4KPiA+IFRoZXJlIGlzIG5vIGluZm9ybWF0aW9u IHRyYW5zbWl0dGVkIHRocm91Z2ggc3lzZnMgaGVyZSwgYnV0IHRoZSByZWNvcmQgb2YgdGhlIHN0 YWNrIGlzIHN3aXRjaGVkIG9uIGFuZCBvZmYuCj4gPiBJZiBkb24ndCBleHBvcnQgdGhpcyBpbmZv cm1hdGlvbiB0aHJvdWdoIHByb2NmcyBhbmQgc3lzZnMsIGlzIHRoZXJlIGEgbW9yZSBhcHByb3By aWF0ZSB3YXk/Cj4gCj4gV2VsbCwgSSBkb3VidCB3aHkgd2Ugc2hvdWxkIGV4cG9ydCBzdGFjayBp bmZvIHZpYSBwcm9jL3N5c2ZzIG5vZGUgb3IKPiBzeXNmcyBzd2l0Y2guCj4gCj4gVGhvc2UgaW5m byB3aWxsIGFsd2F5cyBiZSBuZWVkZWQgdG8gdHJvdWJsZXNob290IGlzc3VlcyBubyBtYXR0ZXIg aW4KPiB1c2VyIG9yIGVuZyB2ZXJzaW9uIG9mIEFuZHJvaWQsIGNhbiB3ZSBqdXN0IHByaW50IHRo ZW0gZGlyZWN0bHkgaW50bwo+IGtlcm5lbCBtZXNzYWdlLi4uIHdoYXQgSSBjb25jZXJuIGlzIHdl IG1heSBsb3N0IHRoZSBidWcgc2NlbmUgZHVlIHRvCj4gbm8gb25lIGNhbiBoZWxwIHRvIHRyaWdn ZXIgZG1lc2cgcHJpbnRpbmcgdmlhIHN5c2ZzLgo+IAo+IEphZWdldWssIHRob3VnaHRzPwoKSSB0 aG91Z2h0IHRoYXQgaXQnZCBiZSBnb29kIHRvIGhhdmUgYW4gZXJyb3IgaGlzdG9yeSBpbiBkZWJ1 ZnMuIEZvciBleGFtcGxlLAp3ZSBjYW4gaGF2ZSBhIHNldCBvZiByZWFzb25zIGRlZmluZWQgYXMg ZW51bSBhbmQgcHV0IHRoZSBlcnJvciBjb3VudHMgcGVyClNCSV9ORUVEX0ZTQ0sgYWxvbmcgd2l0 aCBlcnJvciBudW1iZXIgbGlrZSBFTk9NRU0sIEVJTywgYW5kIHNvIG9uLiBUaGUgZ29hbAp3b3Vs ZCBiZSB0byB1bmRlcnN0YW5kIHdoZXRoZXIgd2UncmUgZ2V0dGluZyBTQklfTkVFRF9GU0NLIHdo aWNoIHRyaWdnZXJzCmZzY2sgaW4gcHJhY3RpY2FsLgoKPiAKPiA+IAo+ID4gPiAKPiA+ID4gPiBk aWZmIC0tZ2l0IGEvZnMvZjJmcy9LY29uZmlnIGIvZnMvZjJmcy9LY29uZmlnCj4gPiA+ID4gaW5k ZXggNzY2OWRlN2I0OWNlLi5mNDUxZTU2N2U0YTggMTAwNjQ0Cj4gPiA+ID4gLS0tIGEvZnMvZjJm cy9LY29uZmlnCj4gPiA+ID4gKysrIGIvZnMvZjJmcy9LY29uZmlnCj4gPiA+ID4gQEAgLTEzNSwz ICsxMzUsMTMgQEAgY29uZmlnIEYyRlNfRlNfTFpPUkxFCj4gPiA+ID4gICAgCWRlZmF1bHQgeQo+ ID4gPiA+ICAgIAloZWxwCj4gPiA+ID4gICAgCSAgU3VwcG9ydCBMWk8tUkxFIGNvbXByZXNzIGFs Z29yaXRobSwgaWYgdW5zdXJlLCBzYXkgWS4KPiA+ID4gPiArCj4gPiA+ID4gK2NvbmZpZyBGMkZT X0ZTQ0tfU1RBQ0tfVFJBQ0UKPiA+ID4gCj4gPiA+IEkgZG9uJ3QgdGhpbmsgd2UgbmVlZCBhbm90 aGVyIGNvbmZpZyB0byB3cmFwIHRoaXMgZnVuY3Rpb25hbGl0eSwgbWF5IGJlIHdlCj4gPiA+IGNh biB1c2UgRjJGU19DSEVDS19GUyBpbnN0ZWFkLgo+ID4gCj4gPiBPSy4KPiA+IAo+ID4gPiAKPiA+ ID4gPiArCWJvb2wgIkYyRlMgZnNjayBzdGFjayBpbmZvcm1hdGlvbiByZWNvcmQiCj4gPiA+ID4g KwlkZXBlbmRzIG9uIEYyRlNfRlMKPiA+ID4gPiArCWRlcGVuZHMgb24gU1RBQ0tERVBPVAo+ID4g PiA+ICsJZGVmYXVsdCB5Cj4gPiA+ID4gKwloZWxwCj4gPiA+ID4gKwkgU3VwcG9ydCBwcmludGlu ZyBvdXQgZnNjayBzdGFjayBoaXN0b3J5LiBXaXRoIHRoaXMsIHlvdSBoYXZlIHRvCj4gPiA+ID4g KwkgdHVybiBvbiAiZnNja19zdGFjayIgc3lzZnMgbm9kZS4gVGhlbiB5b3UgY2FuIGdldCBpbmZv cm1hdGlvbgo+ID4gPiA+ICsJIGZyb20ga2VybmVsIGxvZy4KPiA+ID4gPiBkaWZmIC0tZ2l0IGEv ZnMvZjJmcy9mMmZzLmggYi9mcy9mMmZzL2YyZnMuaAo+ID4gPiA+IGluZGV4IGVlOGViMzNlMmMy NS4uYjJkMWQxYTVhM2ZjIDEwMDY0NAo+ID4gPiA+IC0tLSBhL2ZzL2YyZnMvZjJmcy5oCj4gPiA+ ID4gKysrIGIvZnMvZjJmcy9mMmZzLmgKPiA+ID4gPiBAQCAtMjQsNiArMjQsOCBAQAo+ID4gPiA+ ICAgICNpbmNsdWRlIDxsaW51eC9xdW90YW9wcy5oPgo+ID4gPiA+ICAgICNpbmNsdWRlIDxsaW51 eC9wYXJ0X3N0YXQuaD4KPiA+ID4gPiAgICAjaW5jbHVkZSA8Y3J5cHRvL2hhc2guaD4KPiA+ID4g PiArI2luY2x1ZGUgPGxpbnV4L3N0YWNrZGVwb3QuaD4KPiA+ID4gPiArI2luY2x1ZGUgPGxpbnV4 L3N0YWNrdHJhY2UuaD4KPiA+ID4gPiAgICAjaW5jbHVkZSA8bGludXgvZnNjcnlwdC5oPgo+ID4g PiA+ICAgICNpbmNsdWRlIDxsaW51eC9mc3Zlcml0eS5oPgo+ID4gPiA+IEBAIC0xMTcsNiArMTE5 LDggQEAgdHlwZWRlZiB1MzIgbmlkX3Q7Cj4gPiA+ID4gICAgI2RlZmluZSBDT01QUkVTU19FWFRf TlVNCQkxNgo+ID4gPiA+ICsjZGVmaW5lIEZTQ0tfU1RBQ0tfREVQVEgJCTY0Cj4gPiA+IAo+ID4g PiAxNj8KPiA+IAo+ID4gT0suCj4gPiAKPiA+ID4gCj4gPiA+ID4gKwo+ID4gPiA+ICAgIHN0cnVj dCBmMmZzX21vdW50X2luZm8gewo+ID4gPiA+ICAgIAl1bnNpZ25lZCBpbnQgb3B0Owo+ID4gPiA+ ICAgIAlpbnQgd3JpdGVfaW9fc2l6ZV9iaXRzOwkJLyogV3JpdGUgSU8gc2l6ZSBiaXRzICovCj4g PiA+ID4gQEAgLTE3NDgsNiArMTc1MiwxMSBAQCBzdHJ1Y3QgZjJmc19zYl9pbmZvIHsKPiA+ID4g PiAgICAJdW5zaWduZWQgaW50IGNvbXByZXNzX3dhdGVybWFyazsJLyogY2FjaGUgcGFnZSB3YXRl cm1hcmsgKi8KPiA+ID4gPiAgICAJYXRvbWljX3QgY29tcHJlc3NfcGFnZV9oaXQ7CQkvKiBjYWNo ZSBoaXQgY291bnQgKi8KPiA+ID4gPiAgICAjZW5kaWYKPiA+ID4gPiArI2lmZGVmIENPTkZJR19G MkZTX0ZTQ0tfU1RBQ0tfVFJBQ0UKPiA+ID4gPiArCWRlcG90X3N0YWNrX2hhbmRsZV90ICpmc2Nr X3N0YWNrX2hpc3Rvcnk7Cj4gPiA+ID4gKwl1bnNpZ25lZCBpbnQgZnNja19jb3VudDsKPiA+ID4g PiArCWJvb2wgZnNja19zdGFjazsKPiA+ID4gCj4gPiA+IElNTywgYWxsIGJ1Z19vbigpcyBhcmUg Y29ybmVyIGNhc2VzLCBhbmQgY2F0Y2hpbmcgdGhvc2Ugc3RhY2tzIHdvbid0IGNvc3QKPiA+ID4g bXVjaCwgc28gd2UgY2FuIGp1c3QgdXNlIENPTkZJR19YWFggdG8gZW5hYmxlL2Rpc2FibGUgdGhp cyBmZWF0dXJlLgo+ID4gCj4gPiBGMkZTX0NIRUNLX0ZTIO+8nwo+ID4gCj4gPiA+IAo+ID4gPiA+ ICsjZW5kaWYKPiA+ID4gPiAgICB9Owo+ID4gPiA+ICAgIHN0cnVjdCBmMmZzX3ByaXZhdGVfZGlv IHsKPiA+ID4gPiBAQCAtMTk1NCw2ICsxOTYzLDM4IEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0IGFk ZHJlc3Nfc3BhY2UgKk5PREVfTUFQUElORyhzdHJ1Y3QgZjJmc19zYl9pbmZvICpzYmkpCj4gPiA+ ID4gICAgCXJldHVybiBzYmktPm5vZGVfaW5vZGUtPmlfbWFwcGluZzsKPiA+ID4gPiAgICB9Cj4g PiA+ID4gKyNpZmRlZiBDT05GSUdfRjJGU19GU0NLX1NUQUNLX1RSQUNFCj4gPiA+ID4gK3N0YXRp YyB2b2lkIGZzY2tfc3RhY2tfdHJhY2Uoc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpKQo+ID4gPiA+ ICt7Cj4gPiA+ID4gKwl1bnNpZ25lZCBsb25nIGVudHJpZXNbRlNDS19TVEFDS19ERVBUSF07Cj4g PiA+ID4gKwlkZXBvdF9zdGFja19oYW5kbGVfdCBzdGFjaywgKm5ldzsKPiA+ID4gPiArCXVuc2ln bmVkIGludCBucl9lbnRyaWVzOwo+ID4gPiA+ICsJaW50IGk7Cj4gPiA+ID4gKwo+ID4gPiA+ICsJ aWYgKCFzYmktPmZzY2tfc3RhY2spCj4gPiA+ID4gKwkJcmV0dXJuOwo+ID4gPiA+ICsKPiA+ID4g PiArCW5yX2VudHJpZXMgPSBzdGFja190cmFjZV9zYXZlKGVudHJpZXMsIEFSUkFZX1NJWkUoZW50 cmllcyksIDApOwo+ID4gPiA+ICsJbnJfZW50cmllcyA9IGZpbHRlcl9pcnFfc3RhY2tzKGVudHJp ZXMsIG5yX2VudHJpZXMpOwo+ID4gPiA+ICsJc3RhY2sgPSBzdGFja19kZXBvdF9zYXZlKGVudHJp ZXMsIG5yX2VudHJpZXMsIEdGUF9LRVJORUwpOwo+ID4gPiA+ICsJaWYgKCFzdGFjaykKPiA+ID4g PiArCQlyZXR1cm47Cj4gPiA+ID4gKwo+ID4gPiA+ICsJLyogVHJ5IHRvIGZpbmQgYW4gZXhpc3Rp bmcgZW50cnkgZm9yIHRoaXMgYmFja3RyYWNlICovCj4gPiA+ID4gKwlmb3IgKGkgPSAwOyBpIDwg c2JpLT5mc2NrX2NvdW50OyBpKyspCj4gPiA+ID4gKwkJaWYgKHNiaS0+ZnNja19zdGFja19oaXN0 b3J5W2ldID09IHN0YWNrKQo+ID4gPiA+ICsJCQlyZXR1cm47Cj4gPiA+ID4gKwo+ID4gPiA+ICsJ bmV3ID0ga3JlYWxsb2Moc2JpLT5mc2NrX3N0YWNrX2hpc3RvcnksIChzYmktPmZzY2tfY291bnQg KyAxKSAqCj4gPiA+ID4gKwkJICAgICAgIHNpemVvZigqc2JpLT5mc2NrX3N0YWNrX2hpc3Rvcnkp LCBHRlBfS0VSTkVMKTsKPiA+ID4gPiArCWlmICghbmV3KQo+ID4gPiA+ICsJCXJldHVybjsKPiA+ ID4gPiArCj4gPiA+ID4gKwlzYmktPmZzY2tfc3RhY2tfaGlzdG9yeSA9IG5ldzsKPiA+ID4gPiAr CXNiaS0+ZnNja19zdGFja19oaXN0b3J5W3NiaS0+ZnNja19jb3VudCsrXSA9IHN0YWNrOwo+ID4g PiAKPiA+ID4gSXQgd2lsbCBjYXNlIG1lbW9yeSBsZWFrIGFmdGVyIGYyZnMgbW9kdWxlIGV4aXRz Lgo+ID4gCj4gPiBTbyBsZXQncyBlbmFibGUgdGhpcyBmZWF0dXJlIHdoZW4gZjJmcyBpcyBub3Qg YSBtb2R1bGUgYW5kIGVuYWJsZSBGMkZTX0NIRUNLX0ZTLgo+IAo+IEkgbWVhbiBpdCBuZWVkcyB0 byBmcmVlIC5mc2NrX3N0YWNrX2hpc3RvcnkgZHVyaW5nIHVtb3VudCgpLgo+IAo+IFRoYW5rcywK PiAKPiA+IAo+ID4gPiAKPiA+ID4gPiArfQo+ID4gPiA+ICsjZW5kaWYKPiA+ID4gPiArCj4gPiA+ ID4gICAgc3RhdGljIGlubGluZSBib29sIGlzX3NiaV9mbGFnX3NldChzdHJ1Y3QgZjJmc19zYl9p bmZvICpzYmksIHVuc2lnbmVkIGludCB0eXBlKQo+ID4gPiA+ICAgIHsKPiA+ID4gPiAgICAJcmV0 dXJuIHRlc3RfYml0KHR5cGUsICZzYmktPnNfZmxhZyk7Cj4gPiA+ID4gQEAgLTE5NjIsNiArMjAw MywxMCBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaXNfc2JpX2ZsYWdfc2V0KHN0cnVjdCBmMmZzX3Ni X2luZm8gKnNiaSwgdW5zaWduZWQgaW50IHR5cGUpCj4gPiA+ID4gICAgc3RhdGljIGlubGluZSB2 b2lkIHNldF9zYmlfZmxhZyhzdHJ1Y3QgZjJmc19zYl9pbmZvICpzYmksIHVuc2lnbmVkIGludCB0 eXBlKQo+ID4gPiA+ICAgIHsKPiA+ID4gPiAgICAJc2V0X2JpdCh0eXBlLCAmc2JpLT5zX2ZsYWcp Owo+ID4gPiA+ICsjaWZkZWYgQ09ORklHX0YyRlNfRlNDS19TVEFDS19UUkFDRQo+ID4gPiA+ICsJ aWYgKHVubGlrZWx5KHR5cGUgPT0gU0JJX05FRURfRlNDSykpCj4gPiA+ID4gKwkJZnNja19zdGFj a190cmFjZShzYmkpOwo+ID4gPiA+ICsjZW5kaWYKPiA+ID4gPiAgICB9Cj4gPiA+ID4gICAgc3Rh dGljIGlubGluZSB2b2lkIGNsZWFyX3NiaV9mbGFnKHN0cnVjdCBmMmZzX3NiX2luZm8gKnNiaSwg dW5zaWduZWQgaW50IHR5cGUpCj4gPiA+ID4gZGlmZiAtLWdpdCBhL2ZzL2YyZnMvc3lzZnMuYyBi L2ZzL2YyZnMvc3lzZnMuYwo+ID4gPiA+IGluZGV4IDIwNGRlNGMyYzgxOC4uNGU3ODZiYjc5N2U3 IDEwMDY0NAo+ID4gPiA+IC0tLSBhL2ZzL2YyZnMvc3lzZnMuYwo+ID4gPiA+ICsrKyBiL2ZzL2Yy ZnMvc3lzZnMuYwo+ID4gPiA+IEBAIC0zMDYsNiArMzA2LDI2IEBAIHN0YXRpYyBzc2l6ZV90IGYy ZnNfc2JpX3Nob3coc3RydWN0IGYyZnNfYXR0ciAqYSwKPiA+ID4gPiAgICAJaWYgKCFzdHJjbXAo YS0+YXR0ci5uYW1lLCAiY29tcHJfbmV3X2lub2RlIikpCj4gPiA+ID4gICAgCQlyZXR1cm4gc3lz ZnNfZW1pdChidWYsICIldVxuIiwgc2JpLT5jb21wcl9uZXdfaW5vZGUpOwo+ID4gPiA+ICAgICNl bmRpZgo+ID4gPiA+ICsjaWZkZWYgQ09ORklHX0YyRlNfRlNDS19TVEFDS19UUkFDRQo+ID4gPiA+ ICsJaWYgKCFzdHJjbXAoYS0+YXR0ci5uYW1lLCAiZnNja19zdGFjayIpKSB7Cj4gPiA+ID4gKwkJ dW5zaWduZWQgbG9uZyAqZW50cmllczsKPiA+ID4gPiArCQl1bnNpZ25lZCBpbnQgbnJfZW50cmll czsKPiA+ID4gPiArCQl1bnNpZ25lZCBpbnQgaTsKPiA+ID4gPiArCQlpbnQgY291bnQ7Cj4gPiA+ ID4gKwo+ID4gPiA+ICsJCWNvdW50ID0gc3lzZnNfZW1pdChidWYsICIldVxuIiwgc2JpLT5mc2Nr X3N0YWNrKTsKPiA+ID4gPiArCQlpZiAoIXNiaS0+ZnNja19zdGFjaykKPiA+ID4gPiArCQkJcmV0 dXJuIGNvdW50Owo+ID4gPiA+ICsKPiA+ID4gPiArCQlmb3IgKGkgPSAwOyBpIDwgc2JpLT5mc2Nr X2NvdW50OyBpKyspIHsKPiA+ID4gPiArCQkJbnJfZW50cmllcyA9IHN0YWNrX2RlcG90X2ZldGNo KHNiaS0+ZnNja19zdGFja19oaXN0b3J5W2ldLCAmZW50cmllcyk7Cj4gPiA+ID4gKwkJCWlmICgh ZW50cmllcykKPiA+ID4gPiArCQkJCXJldHVybiBjb3VudDsKPiA+ID4gPiArCQkJc3RhY2tfdHJh Y2VfcHJpbnQoZW50cmllcywgbnJfZW50cmllcywgMCk7Cj4gPiA+ID4gKwkJfQo+ID4gPiA+ICsJ CXJldHVybiBjb3VudDsKPiA+ID4gPiArCX0KPiA+ID4gPiArI2VuZGlmCj4gPiA+ID4gICAgCXVp ID0gKHVuc2lnbmVkIGludCAqKShwdHIgKyBhLT5vZmZzZXQpOwo+ID4gPiA+IEBAIC03NDAsNiAr NzYwLDEwIEBAIEYyRlNfUldfQVRUUihBVEdDX0lORk8sIGF0Z2NfbWFuYWdlbWVudCwgYXRnY19j YW5kaWRhdGVfY291bnQsIG1heF9jYW5kaWRhdGVfY291Cj4gPiA+ID4gICAgRjJGU19SV19BVFRS KEFUR0NfSU5GTywgYXRnY19tYW5hZ2VtZW50LCBhdGdjX2FnZV93ZWlnaHQsIGFnZV93ZWlnaHQp Owo+ID4gPiA+ICAgIEYyRlNfUldfQVRUUihBVEdDX0lORk8sIGF0Z2NfbWFuYWdlbWVudCwgYXRn Y19hZ2VfdGhyZXNob2xkLCBhZ2VfdGhyZXNob2xkKTsKPiA+ID4gPiArI2lmZGVmIENPTkZJR19G MkZTX0ZTQ0tfU1RBQ0tfVFJBQ0UKPiA+ID4gPiArRjJGU19SV19BVFRSKEYyRlNfU0JJLCBmMmZz X3NiX2luZm8sIGZzY2tfc3RhY2ssIGZzY2tfc3RhY2spOwo+ID4gPiA+ICsjZW5kaWYKPiA+ID4g PiArCj4gPiA+ID4gICAgI2RlZmluZSBBVFRSX0xJU1QobmFtZSkgKCZmMmZzX2F0dHJfIyNuYW1l LmF0dHIpCj4gPiA+ID4gICAgc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGUgKmYyZnNfYXR0cnNbXSA9 IHsKPiA+ID4gPiAgICAJQVRUUl9MSVNUKGdjX3VyZ2VudF9zbGVlcF90aW1lKSwKPiA+ID4gPiBA QCAtODEyLDYgKzgzNiw5IEBAIHN0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlICpmMmZzX2F0dHJzW10g PSB7Cj4gPiA+ID4gICAgCUFUVFJfTElTVChhdGdjX2NhbmRpZGF0ZV9jb3VudCksCj4gPiA+ID4g ICAgCUFUVFJfTElTVChhdGdjX2FnZV93ZWlnaHQpLAo+ID4gPiA+ICAgIAlBVFRSX0xJU1QoYXRn Y19hZ2VfdGhyZXNob2xkKSwKPiA+ID4gPiArI2lmZGVmIENPTkZJR19GMkZTX0ZTQ0tfU1RBQ0tf VFJBQ0UKPiA+ID4gPiArCUFUVFJfTElTVChmc2NrX3N0YWNrKSwKPiA+ID4gPiArI2VuZGlmCj4g PiA+ID4gICAgCU5VTEwsCj4gPiA+ID4gICAgfTsKPiA+ID4gPiAgICBBVFRSSUJVVEVfR1JPVVBT KGYyZnMpOwo+ID4gPiA+IAo+ID4gCj4gPiBUaHgsCj4gPiBZYW5ndGFvCj4gPiAKCgpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpMaW51eC1mMmZzLWRldmVs IG1haWxpbmcgbGlzdApMaW51eC1mMmZzLWRldmVsQGxpc3RzLnNvdXJjZWZvcmdlLm5ldApodHRw czovL2xpc3RzLnNvdXJjZWZvcmdlLm5ldC9saXN0cy9saXN0aW5mby9saW51eC1mMmZzLWRldmVs Cg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-16.7 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 74CC5C4338F for ; Tue, 17 Aug 2021 00:29:38 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 4BD8260F39 for ; Tue, 17 Aug 2021 00:29:38 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234981AbhHQA2K (ORCPT ); Mon, 16 Aug 2021 20:28:10 -0400 Received: from mail.kernel.org ([198.145.29.99]:59192 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232995AbhHQA2J (ORCPT ); Mon, 16 Aug 2021 20:28:09 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 4C36760F55; Tue, 17 Aug 2021 00:27:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1629160057; bh=JAyjnFSiVYPluKRbzgYs1WrwR65TQsHZgz7pFKAhH9Y=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=szi2GdEolnaOQo9jSGh1cxvC4y9mRj+tBO4Q+L6m9pohIP7BlRkzN6W3FH+IaPVS4 0kAf49PqrI2vAFVfTibz/Dak86zdCcQwu5cRt84nlVfbylpOTbWhhYMF2t5Yy3vSPV UNMwfZSzxplB1xynRQ63kDBZVMlPIQ6m+XuhFBN84JWlOycLyastH5FBmm9vDXesM6 75y/ifrf25DuDEWUso/Cj4c7PgUCQRsAed6rijj4wI2EDQWgDrZXN4a7T4GAEAm3MU 5vez6v3ZNlJMpjyqcl6yeJkwFIggovYz+zrRJrI2usz+7F8vRE8cRCNFhJrsb5h15h vxZu2B9TF+Ovw== Date: Mon, 16 Aug 2021 17:27:35 -0700 From: Jaegeuk Kim To: Chao Yu Cc: =?utf-8?B?5p2O5oms6Z+s?= , linux-f2fs-devel@lists.sourceforge.net, linux-kernel@vger.kernel.org Subject: Re: [PATCH v6] f2fs: introduce /sys/fs/f2fs//fsck_stack node Message-ID: References: <2692c9c0-bb9f-0dd2-f0ca-6abb89e34c47@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <2692c9c0-bb9f-0dd2-f0ca-6abb89e34c47@kernel.org> Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 08/16, Chao Yu wrote: > On 2021/8/16 12:02, 李扬韬 wrote: > > HI Chao, > > > > SBI_NEED_FSCK is an indicator that fsck.f2fs needs to be triggered, > > > > this flag is set in too many places. For some scenes that are not very > > > > reproducible, adding stack information will help locate the problem. > > > > > > > > Let's record all fsck stack history, I added F2FS_FSCK_STACK_TRACE > > > > configuration options and sysfs nodes. After opening the configuration > > > > options and enabling the node, it will start recording. The recorded > > > > stack information will not be clear, and we can get information form > > > > kernel log. > > > > > > > > Signed-off-by: Yangtao Li > > > > --- > > > > Documentation/ABI/testing/sysfs-fs-f2fs | 7 ++++ > > > > fs/f2fs/Kconfig | 10 ++++++ > > > > fs/f2fs/f2fs.h | 45 +++++++++++++++++++++++++ > > > > fs/f2fs/sysfs.c | 27 +++++++++++++++ > > > > 4 files changed, 89 insertions(+) > > > > > > > > diff --git a/Documentation/ABI/testing/sysfs-fs-f2fs b/Documentation/ABI/testing/sysfs-fs-f2fs > > > > index ef4b9218ae1e..047c398093cf 100644 > > > > --- a/Documentation/ABI/testing/sysfs-fs-f2fs > > > > +++ b/Documentation/ABI/testing/sysfs-fs-f2fs > > > > @@ -493,3 +493,10 @@ Contact: "Chao Yu" > > > > Description: When ATGC is on, it controls age threshold to bypass GCing young > > > > candidates whose age is not beyond the threshold, by default it was > > > > initialized as 604800 seconds (equals to 7 days). > > > > + > > > > +What: /sys/fs/f2fs//fsck_stack > > > > +Date: August 2021 > > > > +Contact: "Yangtao Li" > > > > +Description: Controls to enable/disable fsck stack trace, you can get stack > > > > + information from kernel log. Note that the recorded stack information > > > > + will not be cleared. > > > > > > Again, please don't add this into sysfs. > > Oh, I missed to check the details... > > > > > I added this node, part of the idea is to trigger the export of stack information. > > There is no information transmitted through sysfs here, but the record of the stack is switched on and off. > > If don't export this information through procfs and sysfs, is there a more appropriate way? > > Well, I doubt why we should export stack info via proc/sysfs node or > sysfs switch. > > Those info will always be needed to troubleshoot issues no matter in > user or eng version of Android, can we just print them directly into > kernel message... what I concern is we may lost the bug scene due to > no one can help to trigger dmesg printing via sysfs. > > Jaegeuk, thoughts? I thought that it'd be good to have an error history in debufs. For example, we can have a set of reasons defined as enum and put the error counts per SBI_NEED_FSCK along with error number like ENOMEM, EIO, and so on. The goal would be to understand whether we're getting SBI_NEED_FSCK which triggers fsck in practical. > > > > > > > > > > diff --git a/fs/f2fs/Kconfig b/fs/f2fs/Kconfig > > > > index 7669de7b49ce..f451e567e4a8 100644 > > > > --- a/fs/f2fs/Kconfig > > > > +++ b/fs/f2fs/Kconfig > > > > @@ -135,3 +135,13 @@ config F2FS_FS_LZORLE > > > > default y > > > > help > > > > Support LZO-RLE compress algorithm, if unsure, say Y. > > > > + > > > > +config F2FS_FSCK_STACK_TRACE > > > > > > I don't think we need another config to wrap this functionality, may be we > > > can use F2FS_CHECK_FS instead. > > > > OK. > > > > > > > > > + bool "F2FS fsck stack information record" > > > > + depends on F2FS_FS > > > > + depends on STACKDEPOT > > > > + default y > > > > + help > > > > + Support printing out fsck stack history. With this, you have to > > > > + turn on "fsck_stack" sysfs node. Then you can get information > > > > + from kernel log. > > > > diff --git a/fs/f2fs/f2fs.h b/fs/f2fs/f2fs.h > > > > index ee8eb33e2c25..b2d1d1a5a3fc 100644 > > > > --- a/fs/f2fs/f2fs.h > > > > +++ b/fs/f2fs/f2fs.h > > > > @@ -24,6 +24,8 @@ > > > > #include > > > > #include > > > > #include > > > > +#include > > > > +#include > > > > #include > > > > #include > > > > @@ -117,6 +119,8 @@ typedef u32 nid_t; > > > > #define COMPRESS_EXT_NUM 16 > > > > +#define FSCK_STACK_DEPTH 64 > > > > > > 16? > > > > OK. > > > > > > > > > + > > > > struct f2fs_mount_info { > > > > unsigned int opt; > > > > int write_io_size_bits; /* Write IO size bits */ > > > > @@ -1748,6 +1752,11 @@ struct f2fs_sb_info { > > > > unsigned int compress_watermark; /* cache page watermark */ > > > > atomic_t compress_page_hit; /* cache hit count */ > > > > #endif > > > > +#ifdef CONFIG_F2FS_FSCK_STACK_TRACE > > > > + depot_stack_handle_t *fsck_stack_history; > > > > + unsigned int fsck_count; > > > > + bool fsck_stack; > > > > > > IMO, all bug_on()s are corner cases, and catching those stacks won't cost > > > much, so we can just use CONFIG_XXX to enable/disable this feature. > > > > F2FS_CHECK_FS ? > > > > > > > > > +#endif > > > > }; > > > > struct f2fs_private_dio { > > > > @@ -1954,6 +1963,38 @@ static inline struct address_space *NODE_MAPPING(struct f2fs_sb_info *sbi) > > > > return sbi->node_inode->i_mapping; > > > > } > > > > +#ifdef CONFIG_F2FS_FSCK_STACK_TRACE > > > > +static void fsck_stack_trace(struct f2fs_sb_info *sbi) > > > > +{ > > > > + unsigned long entries[FSCK_STACK_DEPTH]; > > > > + depot_stack_handle_t stack, *new; > > > > + unsigned int nr_entries; > > > > + int i; > > > > + > > > > + if (!sbi->fsck_stack) > > > > + return; > > > > + > > > > + nr_entries = stack_trace_save(entries, ARRAY_SIZE(entries), 0); > > > > + nr_entries = filter_irq_stacks(entries, nr_entries); > > > > + stack = stack_depot_save(entries, nr_entries, GFP_KERNEL); > > > > + if (!stack) > > > > + return; > > > > + > > > > + /* Try to find an existing entry for this backtrace */ > > > > + for (i = 0; i < sbi->fsck_count; i++) > > > > + if (sbi->fsck_stack_history[i] == stack) > > > > + return; > > > > + > > > > + new = krealloc(sbi->fsck_stack_history, (sbi->fsck_count + 1) * > > > > + sizeof(*sbi->fsck_stack_history), GFP_KERNEL); > > > > + if (!new) > > > > + return; > > > > + > > > > + sbi->fsck_stack_history = new; > > > > + sbi->fsck_stack_history[sbi->fsck_count++] = stack; > > > > > > It will case memory leak after f2fs module exits. > > > > So let's enable this feature when f2fs is not a module and enable F2FS_CHECK_FS. > > I mean it needs to free .fsck_stack_history during umount(). > > Thanks, > > > > > > > > > > +} > > > > +#endif > > > > + > > > > static inline bool is_sbi_flag_set(struct f2fs_sb_info *sbi, unsigned int type) > > > > { > > > > return test_bit(type, &sbi->s_flag); > > > > @@ -1962,6 +2003,10 @@ static inline bool is_sbi_flag_set(struct f2fs_sb_info *sbi, unsigned int type) > > > > static inline void set_sbi_flag(struct f2fs_sb_info *sbi, unsigned int type) > > > > { > > > > set_bit(type, &sbi->s_flag); > > > > +#ifdef CONFIG_F2FS_FSCK_STACK_TRACE > > > > + if (unlikely(type == SBI_NEED_FSCK)) > > > > + fsck_stack_trace(sbi); > > > > +#endif > > > > } > > > > static inline void clear_sbi_flag(struct f2fs_sb_info *sbi, unsigned int type) > > > > diff --git a/fs/f2fs/sysfs.c b/fs/f2fs/sysfs.c > > > > index 204de4c2c818..4e786bb797e7 100644 > > > > --- a/fs/f2fs/sysfs.c > > > > +++ b/fs/f2fs/sysfs.c > > > > @@ -306,6 +306,26 @@ static ssize_t f2fs_sbi_show(struct f2fs_attr *a, > > > > if (!strcmp(a->attr.name, "compr_new_inode")) > > > > return sysfs_emit(buf, "%u\n", sbi->compr_new_inode); > > > > #endif > > > > +#ifdef CONFIG_F2FS_FSCK_STACK_TRACE > > > > + if (!strcmp(a->attr.name, "fsck_stack")) { > > > > + unsigned long *entries; > > > > + unsigned int nr_entries; > > > > + unsigned int i; > > > > + int count; > > > > + > > > > + count = sysfs_emit(buf, "%u\n", sbi->fsck_stack); > > > > + if (!sbi->fsck_stack) > > > > + return count; > > > > + > > > > + for (i = 0; i < sbi->fsck_count; i++) { > > > > + nr_entries = stack_depot_fetch(sbi->fsck_stack_history[i], &entries); > > > > + if (!entries) > > > > + return count; > > > > + stack_trace_print(entries, nr_entries, 0); > > > > + } > > > > + return count; > > > > + } > > > > +#endif > > > > ui = (unsigned int *)(ptr + a->offset); > > > > @@ -740,6 +760,10 @@ F2FS_RW_ATTR(ATGC_INFO, atgc_management, atgc_candidate_count, max_candidate_cou > > > > F2FS_RW_ATTR(ATGC_INFO, atgc_management, atgc_age_weight, age_weight); > > > > F2FS_RW_ATTR(ATGC_INFO, atgc_management, atgc_age_threshold, age_threshold); > > > > +#ifdef CONFIG_F2FS_FSCK_STACK_TRACE > > > > +F2FS_RW_ATTR(F2FS_SBI, f2fs_sb_info, fsck_stack, fsck_stack); > > > > +#endif > > > > + > > > > #define ATTR_LIST(name) (&f2fs_attr_##name.attr) > > > > static struct attribute *f2fs_attrs[] = { > > > > ATTR_LIST(gc_urgent_sleep_time), > > > > @@ -812,6 +836,9 @@ static struct attribute *f2fs_attrs[] = { > > > > ATTR_LIST(atgc_candidate_count), > > > > ATTR_LIST(atgc_age_weight), > > > > ATTR_LIST(atgc_age_threshold), > > > > +#ifdef CONFIG_F2FS_FSCK_STACK_TRACE > > > > + ATTR_LIST(fsck_stack), > > > > +#endif > > > > NULL, > > > > }; > > > > ATTRIBUTE_GROUPS(f2fs); > > > > > > > > Thx, > > Yangtao > >