From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtpbgsg2.qq.com (smtpbgsg2.qq.com [54.254.200.128]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B333C6DCE1 for ; Thu, 16 Jan 2025 08:26:09 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=54.254.200.128 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1737015978; cv=none; b=dueaQ/Q6maNgZEbuIAEWaLUcm50SbqTyRm4qFJnt7cxvESXlirzWww6KZvWieT1DOw3DdPcSu9SYsEUm+rbyKYRpQWYCRMSpZuH2RSp44wegG3pZlCKeuG2TeswziXxmmQy+Psq2xNO+QlSCfXBUh4X4ScthuNQK8e+noSQlBj8= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1737015978; c=relaxed/simple; bh=GcpaYbW8+XIYDc2vjZvq3uK85S563Vne8L2gz8ZNgic=; h=Message-ID:Subject:From:To:Cc:Date:In-Reply-To:References: Content-Type:MIME-Version; b=ovEsLH6jtJY45D/axK/pfEovUwu50YxOnvgHJweRAZJDBIFr8x2ZJY417F9Hw0EkjA8EWFkh0nK7j9n9MQw5I2DEWPb4x88rWzsrrwSvY+0yHrw0cxjmDnNBm9hChUPUds2UK52frjhQhwDIxpFpa1VCU1w82I6CgYDdgtZZvrI= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=uniontech.com; spf=pass smtp.mailfrom=uniontech.com; dkim=pass (1024-bit key) header.d=uniontech.com header.i=@uniontech.com header.b=P71Wq2XY; arc=none smtp.client-ip=54.254.200.128 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=uniontech.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=uniontech.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=uniontech.com header.i=@uniontech.com header.b="P71Wq2XY" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=uniontech.com; s=onoh2408; t=1737015907; bh=gTm8e6SdtocNO17gpQqtMq91lZB+9I8ezBdn4ReMllc=; h=Message-ID:Subject:From:To:Date:MIME-Version; b=P71Wq2XY0fc3PIW3eiC7DeDJiTcLVVcgnYPE8gzdfNVKMM7frxycUg4MDfng2gztK SAf7AcuxoTXX/s8owijTkPlZ3gX9MN0o3nW3NHY9NEZkRsylN2LRcJTjPxhuwO1JEE Iysd9W7oYzZpxn643kM62iY7piJvVpOtNGRifNfg= X-QQ-mid: bizesmtp86t1737015898t12boczh X-QQ-Originating-IP: GsyHgMok/OSVyBvMV/n+bksW5hFEDC9p0UNSmu94xfg= Received: from [10.20.53.121] ( [113.57.152.160]) by bizesmtp.qq.com (ESMTP) with id ; Thu, 16 Jan 2025 16:24:56 +0800 (CST) X-QQ-SSF: 0000000000000000000000000000000 X-QQ-GoodBg: 1 X-BIZMAIL-ID: 13245521173636363007 Message-ID: Subject: Re: [PATCH] erofs(shrinker): return SHRINK_EMPTY if no objects to free From: Chen Linxuan To: Gao Xiang , Gao Xiang , Chao Yu , Yue Hu , Jeffle Xu , Sandeep Dhavale Cc: linux-erofs@lists.ozlabs.org, linux-kernel@vger.kernel.org Date: Thu, 16 Jan 2025 16:24:56 +0800 In-Reply-To: References: <433DB98624BCDF95+20250116072042.189710-1-chenlinxuan@uniontech.com> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable User-Agent: Evolution 3.52.3-0ubuntu1 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:uniontech.com:qybglogicsvrgz:qybglogicsvrgz5a-1 X-QQ-XMAILINFO: OO3X4QYWmSnVBog3UqkV1Xc5exhATdyInuLC/F2K9ueU13I3mL1TfGxX faE+05xC8JIcK/mwsQ4NadV5K03fHzeL/8Ho+0H8+6Xi/uAzMIeQOyTFjcRQ69+2bWJp6VO ID1mB/Bt8cNnzpGgeZQ29MZOQKIGOyxSEOxMI7gbKR0qEf0JVr7AS12y0bBLZKX3B65zdLa ViaxcqlbhbrJBKG/FHoZwX4LxpacUE1FqPP+cLkZMsa1T5Rjs3dIsNKjW9vYpNPo1i/7QK2 WJdXUjNR7TVfZChpZMCAvO0mVc6Kx58CDaaZOKG8GSfEXZ8sSC7wzEtg5PcEzZ806hfwK8R aPUwmk1Udks7r8tOQo8Tig3irK2oLa0OrQWXMODv+tUE3JQ4L75/8RxLq4PG6O/uTd4ipYQ wUgD1w1GXGh47vau1OUpkMrB/LI3QoxWvgNleukXth7AuHQQtCvJYgR/O3EbbKZL3LLwG1x kE4FmBoIwI/0O+t8pI8vYoL6WghNS21fyuKimlkRMToVtRHSywumVbhqcAYNZMhnxSuhbAA XBa9mwn+1QP1QAaVrBCnFVYeYhfg4JNE7eTvChWvSd9aojZqKeoT3OPVdnGCwBz6fPI3Lj5 yRs7PFmi76nALgvzBWQU+jjhC0j7jEYI/x018HbJC7YHnGYPB8wAjNkWoCHjoif0ufFLi6m ozYOgzy+MXrUWFM2ALFXEelagQPr10tlF2UxjW05xhMyqFLCbCkhlUCV0Zf4iNlu4y5v8pR F7nbmSVc59sYcj42c5NA/kiG60toaazg7wBMFrJEy4r8+BHucru8RdxVBR/IKoUiP0TYupw RdBusbItGYMLRFeKmCtFdFiBVtFnvK1zBBw5sCsFHONaVZjcWlywI/GhceStfc0oq8k/UoJ eevi1DDKA1vjR9QBXHtlDUBB88mUjw8i3+GgTBEu1Cwwzgh6sQAWhdeXmbvql0Lhq/aBz0X PIV9xu1Htb7OBnnDuURfdOaXv5amTg/uWlcH80H7u8jBbDpu+aSJFeWZQAS8pmmNVJ4ZRU8 KogrckRSh2ay2T3OZOuErGNZs4QN4= X-QQ-XMRINFO: MSVp+SPm3vtS1Vd6Y4Mggwc= X-QQ-RECHKSPAM: 0 On Thu, 2025-01-16 at 15:51 +0800, Gao Xiang wrote: > Hi Linxuan, >=20 > On 2025/1/16 15:20, Chen Linxuan wrote: > > Comments in file include/linux/shrinker.h says that > > `count_objects` of `struct shrinker` should return SHRINK_EMPTY > > when there are no objects to free. > >=20 > > > If there are no objects to free, it should return SHRINK_EMPTY, > > > while 0 is returned in cases of the number of freeable items cannot > > > be determined or shrinker should skip this cache for this time > > > (e.g., their number is below shrinkable limit). >=20 > Thanks for the patch! >=20 > Yeah, it seems that is the case. Yet it'd better to document > what the impact if 0 is returned here if you know more.. Sorry, I have no idea about that. >=20 > >=20 > > Signed-off-by: Chen Linxuan > > --- > > fs/erofs/zutil.c | 4 +++- > > 1 file changed, 3 insertions(+), 1 deletion(-) > >=20 > > diff --git a/fs/erofs/zutil.c b/fs/erofs/zutil.c > > index 0dd65cefce33..682863fa9e1c 100644 > > --- a/fs/erofs/zutil.c > > +++ b/fs/erofs/zutil.c > > @@ -243,7 +243,9 @@ void erofs_shrinker_unregister(struct super_block *= sb) > > static unsigned long erofs_shrink_count(struct shrinker *shrink, > > struct shrink_control *sc) > > { > > - return atomic_long_read(&erofs_global_shrink_cnt); > > + unsigned long count =3D atomic_long_read(&erofs_global_shrink_cnt); > > + > > + return count ? count : SHRINK_EMPTY; >=20 > I guess you could just use >=20 > return atomic_long_read(&erofs_global_shrink_cnt) ?: SHRINK_EMPTY; >=20 > Thanks, > Gao Xiang >=20 > > } > > =20 > > static unsigned long erofs_shrink_scan(struct shrinker *shrink, >=20 >=20 >=20