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 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2EB00EB64D9 for ; Fri, 7 Jul 2023 22:59:52 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id D02038D0001; Fri, 7 Jul 2023 18:59:50 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id CB1F76B0072; Fri, 7 Jul 2023 18:59:50 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id B78F28D0001; Fri, 7 Jul 2023 18:59:50 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id A423E6B0071 for ; Fri, 7 Jul 2023 18:59:50 -0400 (EDT) Received: from smtpin24.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 559C780153 for ; Fri, 7 Jul 2023 22:59:50 +0000 (UTC) X-FDA: 80986334940.24.6230ED6 Received: from bjm7-spam01.kuaishou.com (smtpcn03.kuaishou.com [103.107.217.217]) by imf07.hostedemail.com (Postfix) with ESMTP id 792C44000A for ; Fri, 7 Jul 2023 22:59:46 +0000 (UTC) Authentication-Results: imf07.hostedemail.com; dkim=pass header.d=kuaishou.com header.s=dkim header.b=jv2PDMO9; dmarc=pass (policy=none) header.from=kuaishou.com; spf=pass (imf07.hostedemail.com: domain of yangyifei03@kuaishou.com designates 103.107.217.217 as permitted sender) smtp.mailfrom=yangyifei03@kuaishou.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1688770787; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=cp7sJjqBAkvjE+kt+xPCGX7+3BPrLqtLQOEzUREou3Y=; b=CapjrJ8dTl27c2lIJ4Z8eAX9jZNy7DDrF2SwXMG4oOzeRORR9mE3w9yBjNtrzptGINa1dJ bgxbxm7mXu1eHe+eWn3pSnVRyK7LVqTNbTbt4ZQ1yrzl97C3xIKv4TGrkhlb09xxVlWeZ1 8nQJIC2cqOFnDsd4WHP4jmjcjNrNvCc= ARC-Authentication-Results: i=1; imf07.hostedemail.com; dkim=pass header.d=kuaishou.com header.s=dkim header.b=jv2PDMO9; dmarc=pass (policy=none) header.from=kuaishou.com; spf=pass (imf07.hostedemail.com: domain of yangyifei03@kuaishou.com designates 103.107.217.217 as permitted sender) smtp.mailfrom=yangyifei03@kuaishou.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1688770787; a=rsa-sha256; cv=none; b=XgHHN2IMRaqroVvNx/eOdF7pcSD8+C6i//Y06W4m2Ak/zc8UmUwmpBD61zlJQshhVQhpyB uPci/MvPk2qvgNn9G6wrlzP/Wfcq1RKGtUeETW6E8DZiCD46rShTsSE+YiIkFCOik8Xixz zf6hptHFnFPfIweu+Tyq6j7tXStecY0= Received: from bjxm-pm-mail10.kuaishou.com ([172.28.128.10]) by bjm7-spam01.kuaishou.com with ESMTPS id 367MwGRl095714 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL); Sat, 8 Jul 2023 06:58:16 +0800 (GMT-8) (envelope-from yangyifei03@kuaishou.com) DKIM-Signature: v=1; a=rsa-sha256; d=kuaishou.com; s=dkim; c=relaxed/relaxed; t=1688770657; h=from:subject:to:date:message-id; bh=cp7sJjqBAkvjE+kt+xPCGX7+3BPrLqtLQOEzUREou3Y=; b=jv2PDMO9MK3wlt56wQNn1Z5hlB8WYPfu/tBQ+DQREU+CX4ZqTiynd8E+ZTSFRKod1vmuHxdizck P6iHMs8oyH6uQWOPb2dwIHTAKITBp+nP1xMVpyZDmrgCLwHWP4f5MB4jftNupBqMYAOQolxN2nskz WWM90ZJoKtjh2AEcxz4= Received: from bjm7-pm-mail12.kuaishou.com (172.28.1.94) by bjxm-pm-mail10.kuaishou.com (172.28.128.10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1118.20; Sat, 8 Jul 2023 06:57:37 +0800 Received: from bjm7-pm-mail12.kuaishou.com ([fe80::467b:4542:43f4:a47d]) by bjm7-pm-mail12.kuaishou.com ([fe80::467b:4542:43f4:a47d%8]) with mapi id 15.02.1118.020; Sat, 8 Jul 2023 06:55:55 +0800 From: =?gb2312?B?0e7S3bfJ?= To: Andrew Morton CC: "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Johannes Weiner Subject: =?gb2312?B?tPC4tDogPz8/Pz8hP1JlOiBbUEFUQ0hdIG1tOnZtc2NhbjogZml4IGluYWNj?= =?gb2312?Q?urate_reclaim_during_proactive_reclaim?= Thread-Topic: ?????!?Re: [PATCH] mm:vmscan: fix inaccurate reclaim during proactive reclaim Thread-Index: AQHZsQZR7p+4nO0buUCavcK8f8PJjq+u1x+s Date: Fri, 7 Jul 2023 22:55:55 +0000 Message-ID: <585b22310286498cb125771c96ddec4c@kuaishou.com> References: <20230707103226.38496-1-yangyifei03@kuaishou.com>,<20230707120931.f2ec7f5c53c5dd2788afda11@linux-foundation.org> In-Reply-To: <20230707120931.f2ec7f5c53c5dd2788afda11@linux-foundation.org> Accept-Language: zh-CN, en-US Content-Language: zh-CN X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [172.28.1.32] Content-Type: multipart/alternative; boundary="_000_585b22310286498cb125771c96ddec4ckuaishoucom_" MIME-Version: 1.0 X-DNSRBL: X-MAIL:bjm7-spam01.kuaishou.com 367MwGRl095714 X-Rspam-User: X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: 792C44000A X-Stat-Signature: pmwejg4hwfa3zp6785bgj4atdzr8yyfm X-HE-Tag: 1688770786-641778 X-HE-Meta: U2FsdGVkX18gpIXXw4l69tfT7TKzoTlqeOBhIEhdF9S7q67eEImwmpEKSXfdSsuKEngWrR3336Cre7bWKQcOLjLLHVcmEGq+w7acp51GiaPEq4HA5rEqGQLYHGwioAIKTPLqWiO1NeoMhRLGKqbo6FvK13kMefMV49Gmpq/Tx6tMDB3UuKyQ8SYB3aQZari3Ba0BN/jBY+VuzD74KzulurMz+EAF0pDhhEuAcHoGpaE/72YyQpDcIorqHk4RYwIZpFc+e9BNxn1a1oaZQuir3EWFANVWvf6SXwZW+dVXqkbbmeTyUDM3uy+jcnOx+QFtvcmwjNFnEciLVGDJhTQaSjeRfHjrWHasCwb6M5/8I3C8AM8GovnlXDlBrm+eSdTuy9VUwIeNmQdTYQcDHimzKk5RgKyUKabrHbqWnd5b4wLRQ5qvrEa69spnF3HLG0Gfyze1AobmTSn/YtRDRKxgJK5Ocjh+B5rDXZZebpBTtBXMwKeP5sZWYEzeKKbtGICmIwn8VhsJSQIrC7oONKHl/YQ7n5j38SNnGkKgyRpXh53ZnxQfDPiPmI+BRaSCEamRdPbMgHvu+CCd/jeeEl6tpyWqn4zea9OEGO3QUQeCl7R0/SshjU/+tzD51+B1qvpPlRTrMP/CQk3kn6ikCpnTVaB3gYDigx+/EkcQDzsmWVnz3V/9QXiwlRwWTQqdlErPKIuftNh3VvcF01ucJOy+CkYyAqlyTGK8I124uAoh8YYqGdXNZDaRMYxq1MG0fVT+AJWr62PrfZSrGE8GBw0alZZmfvSEBvkGSGX4CKZc3AIYLtJ7oB6gp+30OIuEIHIT6KfxXi/dJ0RZig58blK6taJ5axWii4Pj09ZWPEiyjlgq6Hfyp00wqM74ABn7l0DCLtJurL5nKdn5d2HwnrFM55Zz2Ei4JymiLl9+6HP2zzR+VPklbpN3zIy+IWJ8Qe6a1cKEjgyEPKLPW5ecgFB LrJLVN6H gF3eKS7NJwGZ8ZwN9o9iVKCK+Hr3K6ZwRHhkWXNAaBQhvcVub5gH+xmONnjyqSv7NO+MhpLSeb6HWpJPreieCMbgAnjyV1O8wzMs7bQ9XriRQFhIoFzWfniyxLS7N18vFYGvh3e3zcnbqbXOJNuvWJ700+w1sibrXKLg2WobH3dqXtzjPRxrTYWH07acwaMYvLUxXi84iVzJ1xenGh6C0NvmzXBjQmW+5VnXS84p+agdy7C2XDOHPzUD3wekba0HW5gexjLFH+2Ss5ljLKYZE3FtHv69l9tgxHZe++9lPNmyttss5/7uvjc0K16jdPy8XeIcGoMS4rcm1JT5Vf4pLm159Y29pmNMUVxq3s+E7Xxgtt9J5BWRo0ikSjNXv0YzG0dLm8NYyNepsJmpypx8JRMEZZ7SOByeRx4/kBSbV/O/rKv4v6/FOt9k8+8SuNB6jOgZB5BBnFq50OiCnm/C9q8Fsxz/JPME7aUi2n0F/pl3iacmdZnHgfL5UrdQuqZPLeAm8jvGi/FGkQUK95AVjbf3vTTWFeMvafpIgNHJfIIVd7P6TsZrrZPMugFbsO0DaFg7gEWrZF4piKCduZnNB0OXBVJ0GOvRjiTJPLbhJaMkduCbrHkAbzBDsACu+NSdBehyYv5B0CyE7k23K/35DxRBz4oZsxwuhwkHnH1pCwoxnDCgoroxfCvvCApK+UF+Lc+7xuOZrkGs8QG6Ag1kH6KH3fQ3DqVowuQjxNmrrPe0id3MQiRTCpkh4jYqv6RK/GugZnuXvJaIyaDFaVM3XZnZmyGAJxRniV9jWttLzGUHauVdSsalzcd3S5A== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: --_000_585b22310286498cb125771c96ddec4ckuaishoucom_ Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: base64 VGhhbmsgeW91IGZvciB5b3VyIHJlcGx5LiBzaHJpbmtfbHJ1dmVjKCkgaXMgbmVzdGVkIGluIGRl ZXAgbG9vcC4gUmVjbGFpbWVyIG1heSBoYXZlIGFscmVhZHkgcmVjbGFpbWVkIHBhcnQgb2YgcmVx dWVzdGVkIG1lbW9yeSBpbiBvbmUgbG9vcCwgYnV0IGJlZm9yZSBhZGp1c3Qgc2MtPm5yX3RvX3Jl Y2xhaW0gaW4gb3V0ZXIgbG9vcCwgY2FsbCBzaHJpbmtfbHJ1dmVjKCkgYWdhaW4gd2lsbCBzdGls bCBmb2xsb3cgdGhlIGN1cnJlbnQgc2MtPm5yX3RvX3JlY2xhaW0gdG8gd29yay4gSXQgd2lsbCBl dmVudHVhbGx5IGxlYWQgdG8gb3ZlcnJlY2xhaW0uIE15IHByb2JsZW0gY2FzZSBpcyBlYXN5IHRv IGNvbnN0cnVjdC4gQWxsb2NhdGUgbG90cyBvZiBhbm9ueW1vdXMgbWVtb3J5KGUuZy4gMjBHKSBp biBhIG1lbWNnLCB0aGVuIHN3YXBwaW5nIGJ5IHdyaXRpbmcgbWVtb3J5LnJlY2xhaW0gYW5kIHRo ZXJlIGlzIGEgY2VydGFpbiBwcm9iYWJpbGl0eSBvZiBvdmVycmVjbGFpbS4NCg0KDQpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXw0Kt6K8/sjLOiBBbmRyZXcgTW9ydG9uIDxha3BtQGxp bnV4LWZvdW5kYXRpb24ub3JnPg0Kt6LLzcqxvOQ6IDIwMjPE6jfUwjjI1SAzOjA5DQrK1bz+yMs6 INHu0t23yQ0Ks63LzTogbGludXgtbW1Aa3ZhY2sub3JnOyBsaW51eC1rZXJuZWxAdmdlci5rZXJu ZWwub3JnOyBKb2hhbm5lcyBXZWluZXINCtb3zOI6ID8/Pz8/IT9SZTogW1BBVENIXSBtbTp2bXNj YW46IGZpeCBpbmFjY3VyYXRlIHJlY2xhaW0gZHVyaW5nIHByb2FjdGl2ZSByZWNsYWltDQoNCrCy yKvM4cq+o7q0y9PKvP7AtNfUuavLvs3isr+ho7P9t8fE+si3yM+3orz+yMvJ7bfdv8nQxcfS08q8 /sTayN2yu7qsv8nSydDFz6KjrLfx1PLH687wu9i4tLvy16q3otPKvP6horXju/fTyrz+wbS907vy tPK/qri9vP6how0KDQoNCihjYyBoYW5uZXMpDQoNCk9uIEZyaSwgNyBKdWwgMjAyMyAxODozMjoy NiArMDgwMCBFZmx5IFlvdW5nIDx5YW5neWlmZWkwM0BrdWFpc2hvdS5jb20+IHdyb3RlOg0KDQo+ IFdpdGggY29tbWl0IGY1M2FmNDI4NWQ3NyAoIm1tOiB2bXNjYW46IGZpeCBleHRyZW1lIG92ZXJy ZWNsYWltDQo+IGFuZCBzd2FwIGZsb29kcyIpLCBwcm9hY3RpdmUgcmVjbGFpbSBzdGlsbCBzZWVt cyBpbmFjY3VyYXRlLg0KPg0KPiBPdXIgcHJvYmxlbWF0aWMgc2NlbmUgYWxzbyBhcmUgYWxtb3N0 IGFub24gcGFnZXMuIFJlcXVlc3QgMUcNCj4gYnkgd3JpdGluZyBtZW1vcnkucmVjbGFpbSB3aWxs IHJlY2xhaW0gMS43RyBvciBvdGhlciB2YWx1ZXMNCj4gbW9yZSB0aGFuIDFHIGJ5IHN3YXBwaW5n Lg0KPg0KPiBUaGlzIHRyeSB0byBmaXggdGhlIGluYWNjdXJhdGUgcmVjbGFpbSBwcm9ibGVtLg0K DQpJdCB3b3VsZCBiZSBoZWxwZnVsIHRvIGhhdmUgc29tZSBhZGRpdGlvbmFsIGV4cGxhbmF0aW9u IG9mIHdoeSB5b3UNCmJlbGlldmUgdGhlIGN1cnJlbnQgY29kZSBpcyBpbmNvcnJlY3Q/DQoNCj4g LS0tIGEvbW0vdm1zY2FuLmMNCj4gKysrIGIvbW0vdm1zY2FuLmMNCj4gQEAgLTYyMDgsNyArNjIw OCw3IEBAIHN0YXRpYyB2b2lkIHNocmlua19scnV2ZWMoc3RydWN0IGxydXZlYyAqbHJ1dmVjLCBz dHJ1Y3Qgc2Nhbl9jb250cm9sICpzYykNCj4gICAgICAgdW5zaWduZWQgbG9uZyBucl90b19zY2Fu Ow0KPiAgICAgICBlbnVtIGxydV9saXN0IGxydTsNCj4gICAgICAgdW5zaWduZWQgbG9uZyBucl9y ZWNsYWltZWQgPSAwOw0KPiAtICAgICB1bnNpZ25lZCBsb25nIG5yX3RvX3JlY2xhaW0gPSBzYy0+ bnJfdG9fcmVjbGFpbTsNCj4gKyAgICAgdW5zaWduZWQgbG9uZyBucl90b19yZWNsYWltID0gKHNj LT5ucl90b19yZWNsYWltIC0gc2MtPm5yX3JlY2xhaW1lZCk7DQo+ICAgICAgIGJvb2wgcHJvcG9y dGlvbmFsX3JlY2xhaW07DQo+ICAgICAgIHN0cnVjdCBibGtfcGx1ZyBwbHVnOw0KPg0KDQo= --_000_585b22310286498cb125771c96ddec4ckuaishoucom_ Content-Type: text/html; charset="gb2312" Content-Transfer-Encoding: quoted-printable

Thank you for your reply. shrink_lruvec() is nested in deep loop. R= eclaimer may have already reclaimed part of requested memory in one loop, b= ut before adjust sc->nr_to_reclaim in outer loop, call shrink_lruve= c() again will still follow the current sc->nr_to_reclaim to work. It will eventually lead to overreclaim. My problem case is easy to construct. Allocate lots of an= onymous memory(e.g. 20G) in a memcg, then swapping by writing memory.r= eclaim and there is a certain probability of overreclaim.




=B7=A2=BC=FE=C8=CB: Andre= w Morton <akpm@linux-foundation.org>
=B7=A2=CB=CD=CA=B1=BC=E4: 2023=C4=EA7=D4=C28=C8=D5 3:09
=CA=D5=BC=FE=C8=CB: =D1=EE=D2=DD=B7=C9
=B3=AD=CB=CD: linux-mm@kvack.org; linux-kernel@vger.kernel.org; Joha= nnes Weiner
=D6=F7=CC=E2: ?????!?Re: [PATCH] mm:vmscan: fix inaccurate reclaim d= uring proactive reclaim
 
=B0=B2=C8=AB=CC=E1=CA=BE=A3=BA=B4=CB=D3=CA=BC=FE= =C0=B4=D7=D4=B9=AB=CB=BE=CD=E2=B2=BF=A1=A3=B3=FD=B7=C7=C4=FA=C8=B7=C8=CF=B7= =A2=BC=FE=C8=CB=C9=ED=B7=DD=BF=C9=D0=C5=C7=D2=D3=CA=BC=FE=C4=DA=C8=DD=B2=BB= =BA=AC=BF=C9=D2=C9=D0=C5=CF=A2=A3=AC=B7=F1=D4=F2=C7=EB=CE=F0=BB=D8=B8=B4=BB= =F2=D7=AA=B7=A2=D3=CA=BC=FE=A1=A2=B5=E3=BB=F7=D3=CA=BC=FE=C1=B4=BD=D3=BB=F2= =B4=F2=BF=AA=B8=BD=BC=FE=A1=A3


(cc hannes)

On Fri, 7 Jul 2023 18:32:26 +0800 Efly Young <yangyifei03@kuaishou.c= om> wrote:

> With commit f53af4285d77 ("mm: vmscan: fix extreme overreclaim > and swap floods"), proactive reclaim still seems inaccurate.
>
> Our problematic scene also are almost anon pages. Request 1G
> by writing memory.reclaim will reclaim 1.7G or other values
> more than 1G by swapping.
>
> This try to fix the inaccurate reclaim problem.

It would be helpful to have some additional explanation of why you
believe the current code is incorrect?

> --- a/mm/vmscan.c
> +++ b/mm/vmscan.c
> @@ -6208,7 +6208,7 @@ static void shrink_lruvec(struct lruvec *lru= vec, struct scan_control *sc)
>       unsigned long nr_to_scan;
>       enum lru_list lru;
>       unsigned long nr_reclaimed =3D 0;<= br> > -     unsigned long nr_to_reclaim =3D sc->nr_to= _reclaim;
> +     unsigned long nr_to_reclaim =3D (sc->= nr_to_reclaim - sc->nr_reclaimed);
>       bool proportional_reclaim;
>       struct blk_plug plug;
>

--_000_585b22310286498cb125771c96ddec4ckuaishoucom_--