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 A5D6FC54E58 for ; Mon, 11 Mar 2024 11:14:31 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 2496E6B0081; Mon, 11 Mar 2024 07:14:31 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 1F8B46B0082; Mon, 11 Mar 2024 07:14:31 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 0C1126B0085; Mon, 11 Mar 2024 07:14:31 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id E8DDA6B0081 for ; Mon, 11 Mar 2024 07:14:30 -0400 (EDT) Received: from smtpin17.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id BCB7CC04A8 for ; Mon, 11 Mar 2024 11:14:30 +0000 (UTC) X-FDA: 81884499900.17.69D5C29 Received: from APC01-PSA-obe.outbound.protection.outlook.com (mail-psaapc01on2112.outbound.protection.outlook.com [40.107.255.112]) by imf05.hostedemail.com (Postfix) with ESMTP id 5DF59100015 for ; Mon, 11 Mar 2024 11:14:27 +0000 (UTC) Authentication-Results: imf05.hostedemail.com; dkim=pass header.d=oppo.com header.s=selector1 header.b=gncuEQT5; dmarc=pass (policy=quarantine) header.from=oppo.com; arc=pass ("microsoft.com:s=arcselector9901:i=1"); spf=pass (imf05.hostedemail.com: domain of lipeifeng@oppo.com designates 40.107.255.112 as permitted sender) smtp.mailfrom=lipeifeng@oppo.com ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1710155668; 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=REKWEwt9J6KphCGfjr9lzjBztQFVRHQmZoykCZc4dzU=; b=FZKKiEjoASGVbu2Q6rQTK1yULgZreIMzZ8SY6RKdluzGw+cc698TRnSnQXO5wYO2F9MvPh 5IYKnOETpG8cyOwh8zUJnCUDd0M7/lWG1Z/InyLgvBHk76CAYFqXU9rWXN6chKM/ZitYf2 ZEcmgiP7GOp6zxpRnQ/Zpg2atRbuAHg= ARC-Authentication-Results: i=2; imf05.hostedemail.com; dkim=pass header.d=oppo.com header.s=selector1 header.b=gncuEQT5; dmarc=pass (policy=quarantine) header.from=oppo.com; arc=pass ("microsoft.com:s=arcselector9901:i=1"); spf=pass (imf05.hostedemail.com: domain of lipeifeng@oppo.com designates 40.107.255.112 as permitted sender) smtp.mailfrom=lipeifeng@oppo.com ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1710155668; a=rsa-sha256; cv=pass; b=HTeY8mIy9hPqO5kl4b9ACOK1v1gOyAY7J/0MeecbXs/NwtXFresl8O0HuOEnJeSTVL1i0J dJAUjYoE/F4Ouhi40rEd2gyMZzLfd/NR5Kel0nyfUY1bJ+qOAxVQNfIaPg85d+Qt4Qp2Po ipKvKpwsnRzdgna1XUBnOB1pIb07wNo= ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=SwqHfmcYjggzikw2bKmJ4zhGlqfTp9Hp6vb4zvpmMsl/5eutbvK3wMnH1SfGwdlAcGXjXnjDe08iQk2KP0b3LlM7MecdMlI6Qj6Hg3zrDmXq4JSXhtshhOmMrW3gR/ah+vUL8wjHjYt7WOciUzDpAKMIpaGRO1nTteUC2MxHtn7wytuUaNH8fSAtlYH8zqimZhus0bQPIvGSInuxvWNL98rs35IVXmgrhIn3i/oNB/5rVtCa8kwdmQG0/R8VYPZ7+ClIbFeqvRP7c3m0cGW/wDnSfOHO0Zgr+TGd9S0EpEzTJAqQtA69cSVFTz6Om7x/gxyTCWjSe1ZKPW9gtTmP3w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=REKWEwt9J6KphCGfjr9lzjBztQFVRHQmZoykCZc4dzU=; b=hHXy38rZzYNiXHU0K5zV88mD0F75sSsB+2sfQ6UnnOvcm4GLFIYAIvsSkcJUDZibuizuumpZDv3/KowJImroffT3FGGXxBjkuMasKKJ3BkAel2cy1C24k3zbnLn+c2saDPd8ZTN7xvajGTSe+f3F560243XYar2fssyhGUNEM2a/XfeuPAgQEMYABP2nvI+kCVdprz9ol7CK5PstcBOKO8LzUMstz5U+98O5QGx3ODmf0k/H76h4YozTHiG/IhnjnPPJVmUlIHSa3l+9utsiOAp6lq2oX6CokPCGKCtI+6UmC2xRTFWeIBVdbX+XkTHNIqWypPV0WITR4CKkRArzKg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oppo.com; dmarc=pass action=none header.from=oppo.com; dkim=pass header.d=oppo.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oppo.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=REKWEwt9J6KphCGfjr9lzjBztQFVRHQmZoykCZc4dzU=; b=gncuEQT5zkpTs0iX+P4af7QnRlG95/MdouqE7yH3/H2eVyhfY7Phl4Ym7AaQDHu6Vk7R6tKGeR/esNi2Jf4TqFxmLF9DK5EyNfQcAQXNrAmBor/2QgNeJUjtaXoPefs1dmcmCIfAUIHtorEMdwq4HQzuKJ/eqeS5o5nzlH+8QT0= Received: from TYZPR02MB5595.apcprd02.prod.outlook.com (2603:1096:400:1c5::12) by TY0PR02MB6830.apcprd02.prod.outlook.com (2603:1096:405:15::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7362.35; Mon, 11 Mar 2024 11:14:21 +0000 Received: from TYZPR02MB5595.apcprd02.prod.outlook.com ([fe80::60d1:4349:510c:8133]) by TYZPR02MB5595.apcprd02.prod.outlook.com ([fe80::60d1:4349:510c:8133%5]) with mapi id 15.20.7362.031; Mon, 11 Mar 2024 11:14:20 +0000 Content-Type: multipart/alternative; boundary="------------zphX46KwPGTp34GxKDS5yFjc" Message-ID: Date: Mon, 11 Mar 2024 19:14:16 +0800 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v2 0/2] reclaim contended folios asynchronously instead of promoting them From: =?UTF-8?B?5p2O5Z+56ZSL?= To: Matthew Wilcox , Minchan Kim Cc: 21cnbao@gmail.com, akpm@linux-foundation.org, david@redhat.com, osalvador@suse.de, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Minchan Kim , =?UTF-8?B?5p2O5Z+56ZSLKHdpbmsp?= References: <20240308031126.750-1-lipeifeng@oppo.com> In-Reply-To: X-ClientProxiedBy: SG3P274CA0020.SGPP274.PROD.OUTLOOK.COM (2603:1096:4:be::32) To TYZPR02MB5595.apcprd02.prod.outlook.com (2603:1096:400:1c5::12) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: TYZPR02MB5595:EE_|TY0PR02MB6830:EE_ X-MS-Office365-Filtering-Correlation-Id: 79664f07-d672-484d-6696-08dc41bc664a X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: aXwa5uj1hHRifE0oSuv8cRUPi3K4gb5zlcmjsvHd3zrQp0VyN0YGsyhnjOkBU8kH9DEiwcrKGpNmYSI1sbMOqRDYAV8/47JrgCnzaOT9L1nokR15kFCLd73Bm8Q+DKICsTlbQG9ZAxyFpOQi0oUdDU05nWT6yvqdQMCNga8lW/VC91gCfmCPm6R8Wh4n6oHr8P2Lem8lG4doVL6yhHEUGHNcqShA8NbJeK6NIb3O9OdWMkknwRMklOYRvF3MWWsXfl5R5bwR6wE4cwwgcaqVkSn+4+hmhhX5gdGTwsJ6oT/bs2XgJZ9eOWy4fJZsKjYiJ49Q0G1cCpST3e1Ell0+Msbabda6unYgaordhHgJCjqdBmobrnwjzXbzeGdwnMgn3RLoFTegJLPir2Mm7MDWaAUSl2tRuiWPl+pAcoqToanFHZ3htVTQjRUELHAUV5pLT02W7VlN3nVjNqyN70K5z5D9m+pfSymYr3uiKroaexVFUVQ5B1Ud19/Aqbf7f9ahfiv4xgVEI7dQmFRGLvAsLY+wgQ0pUxYOYxLHrDA2KKCB1PIdyL/mDBTsffV9IXVnDkflvpYcDHOpnl2sSf/S/UJAOoKlqlilVp6u2iyOTlA9hnHFuKvPR8aBgg0rO4gE7yiQdz8SCJNGSPwTiK9HJLOKOEJEUcIB1IlYh5PU2+Y= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TYZPR02MB5595.apcprd02.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(376005)(1800799015);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?czdvNFdVdjFHTm1IcDh4YWxKTUpOaDlvSnhyeGZGbDVkbmNkZW94WDZjTExN?= =?utf-8?B?MExSNE5DazdDKzBocUZTOXluZmdOd2Y5b0MrSW9xMG1FY05yOTlLQU9CTUF0?= =?utf-8?B?KzBab1ErMXl5RUN1RWovZUhUNnAvQXBGd0wzUzZmSEF6V3VGVjFvZTZ2YXQ4?= =?utf-8?B?cGsxZXB3eDNuRXQ5anpiMEZaUmhMRUdGQUpHNlBYbWQyRlVKOUhpck4xVTc2?= =?utf-8?B?SWpGYnZrcjVJTUVzODZ0b3k3SW8ydnlJeHE0ZGdWUVRtVDVMVE9pTjQ4cHQz?= =?utf-8?B?QXIweGZVQzl4Tk5HcmhVcVhaQ3hFbXlXYmg3Z0xreWNWQUl6K0s5bGxYd0FL?= =?utf-8?B?UnY4ZXZuSGYyb0hURnBLR1BSNGcwR1o4MGNtMmNvRHRtRDgveE5aMWRyTStu?= =?utf-8?B?MXJwN3RjTlJFVjRsbGJYcFlPY2lybTVaakVtMTVNbFdLNUM5QmZIb0VRbGVO?= =?utf-8?B?elZWZVUydWw4UWlnb1Y1MHRsUnRhSGFNbGtwOWpiR2pqa1pvYk4zYVVyVHpT?= =?utf-8?B?azVlaTdSaFBzRmIzYUFKUmxzQUh3VFhKUFpGQThWV3JWUk1uYnBNMHFBRUIy?= =?utf-8?B?eWNjU2hxR0V3blRPbzdoNXdBVUVwZ01kZHRzNGVtTW85VGlFNFhZVE1YK25r?= =?utf-8?B?SUpjbzVTOSsxVzVhUEJLdjdlZTBxUGR1QzFUZGlyUlZlRGRVSEZ4UkFBZzE3?= =?utf-8?B?a29GTWkwanJXeUlPTFpxNVI0MnlOT2paU1RGTnpReDIyaTZmOHdWd1MyR3ov?= =?utf-8?B?M3FLeXNjcVl5YWhIa1NUNTBwRmp5Rm9WVTN1QkJZQjRrd1ZKU3FkMTB1Y0t4?= =?utf-8?B?am05YnN6d0M3dldLOGdBL082Sk5UZEdOUFRJa1c0QXMxMk1aVThWR2hQcHAy?= =?utf-8?B?ZmZVMlcza0ZEeHNDanZBcFNoZnNYa3l4WVhrd0pwY3QydHRrNWtVV1VVM1F4?= =?utf-8?B?aitwbEdweHpBOXZYU3VlWlRDTk8xNEhYeDdQclN5ell5YnJnUWpKNnB3cW1F?= =?utf-8?B?OWdCZ0dDREZNUCtxekVXdTBjSnlqb3VsVXI2MjZ6RmprMzVnZElxUXFqVEZK?= =?utf-8?B?REsrZW0zalY3N0hlZ2ZUQmhvRlU3ZGxCV0JJb2crNU14bmplYjdPems1M2ti?= =?utf-8?B?c3VjTW9PTmtqYmQ4UG1STmNjTStxbHcraThlRnBsUDhQTUliRU1WcU1Zb0FL?= =?utf-8?B?aGNxdDJKdFhxOHN4MmpzaWE3VDExV1VkeTJldGJ1WVdFcmVMUTJqUXREMi90?= =?utf-8?B?blc3T2toamdvaXBOYzVwcFM5RlBXOEc0S1UrdjFXMEhNMUVSY1ovVUI3TWxm?= =?utf-8?B?WWhIR2tqcDUyMjdLUXFlR2dIeXBHWEg4V0Y2RVZHZjdxdmxsUGtNZlJXVUdL?= =?utf-8?B?QnE3dE1HTnlJd1pjSlFtMUtvdDNUVi93bXAvWTQwc2kva1pocjdIbmwvRVJ4?= =?utf-8?B?cnQ3aXFyV2wyR3ptYVF0Z2p4V1BUL0hNZWJZdUxhTXFlR1F6aklZdEkybEtP?= =?utf-8?B?c3dtM0x6OVlFVGlhSFpyTWovNDBROHhia0IvTEYrMXMzRzE0SGs1ck1YM0cy?= =?utf-8?B?Tnl1SFVYUWs1RVRvMmh5WUMxQlNyaVhvaXB0YUJWeExocHJNNUZOK216RjNv?= =?utf-8?B?NzlxZllocEIvL2J0T0FudG9kQ2M1emVQZVhxQ2xFM2dIQTJrUWZzQWVJOWpB?= =?utf-8?B?eXpUZHl0V09qWHVFK29Gc3JPbEZoOVJhMHFBa1U3Y05tMGlsTFV5TDllR25N?= =?utf-8?B?WVdQb01hcWprVjE1REpUV0Erbnkxdm92WWpKeE8wa1VXbEppM3ZuNnV6OFcy?= =?utf-8?B?d3ZKOUZvdUlNL3NYcTlLcXlHSXFTQ2JabGsxK3ltK09wVno5QUIyOVhqcWRE?= =?utf-8?B?OUsyZDJSbHJWTXd2em5FSXQ2Y2lRWmE3MHdodHhualQ0bjh0R2I5YkV1cC80?= =?utf-8?B?cVcwb2wzYTNmRUdEUkxOT01tbkNzcndCKzlqbytHUHRyOFpOT25VZE1kMjVN?= =?utf-8?B?NjJDeWFqY0xJU3V2blVkNUY5Y3FNSTh6R25SbmpaRHl6UUdlTjdPYlFzemU5?= =?utf-8?B?R0t1eU8weDlQM0toSVI5S3hVVkI4K2tXQ2poQmkxaXhYK0JZVWNWWWNhOHlT?= =?utf-8?Q?TgmrCfcjJ1kLazqAjtmi73eKA?= X-OriginatorOrg: oppo.com X-MS-Exchange-CrossTenant-Network-Message-Id: 79664f07-d672-484d-6696-08dc41bc664a X-MS-Exchange-CrossTenant-AuthSource: TYZPR02MB5595.apcprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Mar 2024 11:14:20.8954 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f1905eb1-c353-41c5-9516-62b4a54b5ee6 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 8G5+Xj2XjoiaWUkKv2lfqYhp+D9xXMHJjq//DRiBlSz8JGUGZ42nOcy0GlgKqJ293eEwItgzrmcmPjSYiubfCQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: TY0PR02MB6830 X-Rspam-User: X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: 5DF59100015 X-Stat-Signature: jp9shtk6u16m8q9o9nwx7sir8s7ghp76 X-HE-Tag: 1710155667-207910 X-HE-Meta: U2FsdGVkX1/qEu+zTSBotxJz+yv4qvj/bRE/L+i9XoUezO1da9XqgR4hIU0rcr2uAT0zW4jfsPT/f1d6UQ2Jd859jglXRbX76yDOrh3kwj78IUJNnp6nIztwlI2VzixgXsueAznYVn5kHSrqLXymCaYxBW/OtdHDF9qoWNE28XqJZp+vARGT08W56Dm3HNZmFJ9DdS4iFOWxSnXUo8fsLHAjhl6nIKNKbJBe9bTexpd7c2U1davOFJ19M6+KVDNtXyQp6zT5x7UGl3uow0Yep4RVPYzqK9Df+wk2CmSLDteCdT0P+cQYUAaZJTxaDOphQZdeGMm/9pzeo0c3VsyLZxMRp8MM7hqwggBHVt+K9oImo67eejiUhSNWKpzLWINhWHFRKtHfZravptC7bbZiNfJ4kDhNHdVYEcSUwketNbYTJcxny9GPzzpDGal3JT5pG5ri3ZiSQX6ISVjncLYX5gwfOoge5quf6lIqY6fGyurwIyiHEcudtyORoYNSZNqWbqQeP64cTfglQcuwDA91+mpLAdIoyhn6DIHN4K5dm2VBASNHxBr0AqMDPDckWfMH5DhtsIYUPPXAAV8EysnWfhzpCd0YNE2/5zEXxukd7gfX5bcU63AFZRgEzQRHODjDC1pVi51yI2vEsFDkXvIjqCf8+zRHXGOph23M0pagZokzCe9avJe8myICKNTS2zy9yeqcjbNFJ5loigSM1WtvpWVMJyFj9PpNTiYi+XFyO0ph/IPXYWXowlsBlYQ12Gd6GrmSddAFYTXuIEVgml58ESe7aGd6InvWRMCalqKhofUYk1R06kSz5gqyStXUc5/s/XRVc5fBMVRxGGot9wC5UEJBHsd0XWAiS29muvBGIG9jiVxmD2FsGX7u7zxMVgsddoCIKVhu7vAXRnLu/ZHqkGcddaXoInlJ9XozViK92VOgv9SboCBk2hbBVdHIfXs9P1cVC2ACbgQdIA1e49p 3kU52Ql/ rN4zdbfgmD+jOo7wDDsNa83gUKyrZ4epBVc+Ypa9Dpmk8M7ARziMBq//H7HCzOt9II7NqzegDqDbEtczWQXQ2prjVDwiSKh6/0u+D7cJWWI5+1oRQAZdhHpcPiwFwJFa9YxyxNHoW7iyrhtQZQcLclM5hgVpvRVgO1Ts25q60jvfC/qeWsJXZR/BkrBKs30xK1eW5SGuutgsgkZ+X+7hiiLpx317j3MPOpfE/BY3J1Ub1sxcAlSohRFpBSKBVacTTBWMEr45GrxNR7D8WK6d9ORWnSWqz4jt19DfuHHwIEFTfmVAJ1GDo3ToUY9JTVKXGlLNF3LfCRK3zyFtlINzDa4XfS2dJDIueo0c/jPWOjogJqaITpQ+WBXE9NpX9tmuYP5X6w2dj2UEbuFg82uRY2TpCC4n8gpiRGjims9GwkRkJgVSp4RU7AYCgF9mIursMDKey1/luVEjUQaMGUh70yVQ8olRtgGZGRTpZJ6NXkgwS5cIvvDkyKXY5T5Q6h2RPm7Fq6h0yxlbDqu90MdQKvQZPDhhbnoMyHmyi 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: List-Subscribe: List-Unsubscribe: --------------zphX46KwPGTp34GxKDS5yFjc Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit 在 2024/3/8 14:41, 李培锋 写道: > > > 在 2024/3/8 12:56, Matthew Wilcox 写道: >> On Fri, Mar 08, 2024 at 11:11:24AM +0800,lipeifeng@oppo.com wrote: >>> Commit 6d4675e60135 ("mm: don't be stuck to rmap lock on reclaim path") >>> prevents the reclaim path from becoming stuck on the rmap lock. However, >>> it reinserts those folios at the head of the LRU during shrink_folio_list, >>> even if those folios are very cold. >> This seems like a lot of new code. Did you consider something simpler >> like this? >> >> Also, this is Minchan's patch you're complaining about. Add him to the >> cc. >> >> +++ b/mm/vmscan.c >> @@ -817,6 +817,7 @@ enum folio_references { >> FOLIOREF_RECLAIM, >> FOLIOREF_RECLAIM_CLEAN, >> FOLIOREF_KEEP, >> + FOLIOREF_RESCAN, >> FOLIOREF_ACTIVATE, >> }; >> >> @@ -837,9 +838,9 @@ static enum folio_references folio_check_references(struct folio *folio, >> if (vm_flags & VM_LOCKED) >> return FOLIOREF_ACTIVATE; >> >> - /* rmap lock contention: rotate */ >> + /* rmap lock contention: keep at the tail */ >> if (referenced_ptes == -1) >> - return FOLIOREF_KEEP; >> + return FOLIOREF_RESCAN; >> >> if (referenced_ptes) { >> /* >> @@ -1164,6 +1165,7 @@ static unsigned int shrink_folio_list(struct list_head *folio_list, >> case FOLIOREF_ACTIVATE: >> goto activate_locked; >> case FOLIOREF_KEEP: >> + case FOLIOREF_RESCAN: >> stat->nr_ref_keep += nr_pages; >> goto keep_locked; >> case FOLIOREF_RECLAIM: >> @@ -1446,7 +1448,10 @@ static unsigned int shrink_folio_list(struct list_head *folio_list, >> keep_locked: >> folio_unlock(folio); >> keep: >> - list_add(&folio->lru, &ret_folios); >> + if (references == FOLIOREF_RESCAN) >> + list_add(&folio->lru, &rescan_folios); >> + else >> + list_add(&folio->lru, &ret_folios); >> VM_BUG_ON_FOLIO(folio_test_lru(folio) || >> folio_test_unevictable(folio), folio); >> } > > Actually, we have tested the implementation method you mentioned: > > Putting back the contended-folios in the tail of LRU during > shrink_folio_list > > and rescan it in next shrink_folio_list. > > In some cases, we found the another serious problems that more and more > > contended-folios were piled up at the tail of the LRU, which caused to > the > > serious lowmem-situation, because none of folios isolated could be > reclaimed > > since lock-contended during shrink_folio_list. > Excuse me, do you have any other modification suggestions? --------------zphX46KwPGTp34GxKDS5yFjc Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: 8bit


在 2024/3/8 14:41, 李培锋 写道:


在 2024/3/8 12:56, Matthew Wilcox 写道:
On Fri, Mar 08, 2024 at 11:11:24AM +0800, lipeifeng@oppo.com wrote:
Commit 6d4675e60135 ("mm: don't be stuck to rmap lock on reclaim path")
prevents the reclaim path from becoming stuck on the rmap lock. However,
it reinserts those folios at the head of the LRU during shrink_folio_list,
even if those folios are very cold.
This seems like a lot of new code.  Did you consider something simpler
like this?

Also, this is Minchan's patch you're complaining about.  Add him to the
cc.

+++ b/mm/vmscan.c
@@ -817,6 +817,7 @@ enum folio_references {
        FOLIOREF_RECLAIM,
        FOLIOREF_RECLAIM_CLEAN,
        FOLIOREF_KEEP,
+       FOLIOREF_RESCAN,
        FOLIOREF_ACTIVATE,
 };

@@ -837,9 +838,9 @@ static enum folio_references folio_check_references(struct folio *folio,
        if (vm_flags & VM_LOCKED)
                return FOLIOREF_ACTIVATE;

-       /* rmap lock contention: rotate */
+       /* rmap lock contention: keep at the tail */
        if (referenced_ptes == -1)
-               return FOLIOREF_KEEP;
+               return FOLIOREF_RESCAN;

        if (referenced_ptes) {
                /*
@@ -1164,6 +1165,7 @@ static unsigned int shrink_folio_list(struct list_head *folio_list,
                case FOLIOREF_ACTIVATE:
                        goto activate_locked;
                case FOLIOREF_KEEP:
+               case FOLIOREF_RESCAN:
                        stat->nr_ref_keep += nr_pages;
                        goto keep_locked;
                case FOLIOREF_RECLAIM:
@@ -1446,7 +1448,10 @@ static unsigned int shrink_folio_list(struct list_head *folio_list,
 keep_locked:
                folio_unlock(folio);
 keep:
-               list_add(&folio->lru, &ret_folios);
+               if (references == FOLIOREF_RESCAN)
+                       list_add(&folio->lru, &rescan_folios);
+               else
+                       list_add(&folio->lru, &ret_folios);
                VM_BUG_ON_FOLIO(folio_test_lru(folio) ||
                                folio_test_unevictable(folio), folio);
        }

Actually, we have tested the implementation method you mentioned:

Putting back the contended-folios in the tail of LRU during shrink_folio_list

and rescan it in next shrink_folio_list.

In some cases, we found the another serious problems that more and more

contended-folios were piled up at the tail of the LRU, which caused to the

serious lowmem-situation, because none of folios isolated could be reclaimed

since lock-contended during shrink_folio_list.

Excuse me, do you have any other modification suggestions?

--------------zphX46KwPGTp34GxKDS5yFjc--