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 C2548C54E4A for ; Fri, 8 Mar 2024 06:41:19 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id F17136B033A; Fri, 8 Mar 2024 01:41:18 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id EC77E6B033B; Fri, 8 Mar 2024 01:41:18 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D41C76B033C; Fri, 8 Mar 2024 01:41:18 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id BE0C76B033A for ; Fri, 8 Mar 2024 01:41:18 -0500 (EST) Received: from smtpin20.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 5AEE71A1384 for ; Fri, 8 Mar 2024 06:41:18 +0000 (UTC) X-FDA: 81872925036.20.EF8F729 Received: from APC01-TYZ-obe.outbound.protection.outlook.com (mail-tyzapc01on2098.outbound.protection.outlook.com [40.107.117.98]) by imf30.hostedemail.com (Postfix) with ESMTP id 9912E80021 for ; Fri, 8 Mar 2024 06:41:14 +0000 (UTC) Authentication-Results: imf30.hostedemail.com; dkim=pass header.d=oppo.com header.s=selector1 header.b=jsuJpGfi; dmarc=pass (policy=quarantine) header.from=oppo.com; spf=pass (imf30.hostedemail.com: domain of lipeifeng@oppo.com designates 40.107.117.98 as permitted sender) smtp.mailfrom=lipeifeng@oppo.com; arc=pass ("microsoft.com:s=arcselector9901:i=1") ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1709880075; 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=upCDMjFBWaFJ84AfQ7HIFCZSF9NnjRmckoowWMXvnpc=; b=N6Vfs5KQvW8H+SsXfdCzJLF8S/N2Csj5bJIyzFD82sGFsuhD32Nr4zhlQkNoRvZekMA4wp 9L+ut+/OOEJnLoIawtyZrF8mpiLE8ijmlcdY5iMXmyoC4QqnfaFwzstE+SeGf5q7gmskXQ 9plJxXRL+bGZ9Ehg+9HPEvv0i09otC4= ARC-Authentication-Results: i=2; imf30.hostedemail.com; dkim=pass header.d=oppo.com header.s=selector1 header.b=jsuJpGfi; dmarc=pass (policy=quarantine) header.from=oppo.com; spf=pass (imf30.hostedemail.com: domain of lipeifeng@oppo.com designates 40.107.117.98 as permitted sender) smtp.mailfrom=lipeifeng@oppo.com; arc=pass ("microsoft.com:s=arcselector9901:i=1") ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1709880075; a=rsa-sha256; cv=pass; b=XDv1In81lNG6Jt/2oKkEmxhXkGdEIRy8Zv3DYTrsiVdIeK74SPMyUw0N1i71f8OmkSqK0V Lta712uOs8HFbPtoYRqnY9cIqSb2g97iiMyktmJzzVihRtzhhE+ZVf+5FEmnKiBv9nyfPv hEUu695N6p7bOb39OtHlKvjjUqd2SIA= ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=BJEUsPDhaXQNAeRqFGVceVwPVp51x9e2pYckSh0xFxwHIRmoukv3eDsYVlLasKCo9+s+0JYdoi5SxOjQCm1UWEyso9eOyyMO/3MB8djZhHulki1eMndLnOtySHVlMxx3qupJlVHU/X1uLAytgHsQPfPHI5x/CHkmw7R1siJ3HjwWIXrxISU8jh53aLVzTFEPgrH/+BMmkGsg8M+FhWwIJ7itomNjGkW5Asg7PE+IGrsuoWxDfKtstVEry9B9cdAU6sHRC5edrgwgxaeYjy73LlzblRdwjjBN5N5TTkGp7wFrhKMp49Tc4GvdK8c/OlIUKXesbOe9wYiBoMx7Mel0gw== 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=upCDMjFBWaFJ84AfQ7HIFCZSF9NnjRmckoowWMXvnpc=; b=Fj954UBHA45AKirD+3UGPyA2hU+P9FQIK4gxuPSTrsQ1SRj9G+1yhfcjFJoC/CSINPCUr5bUZlcC18gCuw0yBoFeizOFyQeIKsBXUVfifPyhaqmcgQ6rrU4W4AVusxlZQa+ju3XuICEKbT0Ooi/sIayeVIMJIrGJB+tVsZldKKA1VDolXT+MQCONgpP65L/ah2u/C1X0+JF7T0S+uXU/QOARxrdvWXSyL9QAolhpH4DOZubYatFTEQKOPxFHs7d14Ntp3zB3tz45Wam4BMO6ANWR/+K7cii69q5i3Ckrf9Tb0f/7sMG5DTkD+h/hnf1rvz463ETfWPhBobKW6WP16w== 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=upCDMjFBWaFJ84AfQ7HIFCZSF9NnjRmckoowWMXvnpc=; b=jsuJpGfi9hJNu9tUHEzls2G/Vfk+6cVWKHLoptD/REyhEcZBghBoVR3Jt6xNbR+t8dxC/AKz/dLsgC+rTwmeGbeQgZfVeSSKazwRPN0Qo8enrwmzshx5NZl52NsAsMQbv87jR42FkSPVTqadajJlk7yOKxF58SsxiFk2YGxcMeQ= Received: from TYZPR02MB5595.apcprd02.prod.outlook.com (2603:1096:400:1c5::12) by SEZPR02MB7471.apcprd02.prod.outlook.com (2603:1096:101:1f8::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7339.39; Fri, 8 Mar 2024 06:41:09 +0000 Received: from TYZPR02MB5595.apcprd02.prod.outlook.com ([fe80::60d1:4349:510c:8133]) by TYZPR02MB5595.apcprd02.prod.outlook.com ([fe80::60d1:4349:510c:8133%4]) with mapi id 15.20.7339.031; Fri, 8 Mar 2024 06:41:08 +0000 Content-Type: multipart/alternative; boundary="------------4ZUTdsuDnawiHXj5HAgiA8fT" Message-ID: Date: Fri, 8 Mar 2024 14:41:04 +0800 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v2 0/2] reclaim contended folios asynchronously instead of promoting them To: Matthew Wilcox 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 References: <20240308031126.750-1-lipeifeng@oppo.com> From: =?UTF-8?B?5p2O5Z+56ZSL?= In-Reply-To: X-ClientProxiedBy: SG2P153CA0043.APCP153.PROD.OUTLOOK.COM (2603:1096:4:c6::12) To TYZPR02MB5595.apcprd02.prod.outlook.com (2603:1096:400:1c5::12) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: TYZPR02MB5595:EE_|SEZPR02MB7471:EE_ X-MS-Office365-Filtering-Correlation-Id: 5806cd3c-ede4-4b1b-96b7-08dc3f3abc89 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: VQPLH0YtvqsoTsTjVPImU6L238vWJplUwz/VhPDCp5jumK42QqeOGx0S0mmGENkUhmayqOVFKRl90pcY87aCvxw6DnMYT7FRGoLEG4BincVnSTnjz6pv5O9GQUgmRle29fOyuzTtP9lfuT6r9JXuu8n4OS67lWC+TbZ4bVgHWWMiEI2QibR/YzEF+M4JLw62QIK6cgGyQv/np7mxNTkIRQUj1ktatP+Zjg2ZpGAzKMKB2vej6QRQrhS3jMzmgZLpkCMUESt9dcRPg4n0nlgqeFXvUcJwN7khD0lbFXKmwRiFBZEeABFNuMAZAyYvKkun8Z2c/1WavFXUb0cFpo3w0BfPHzd5LF6tDqv83jY70cyEEEpVjxw/ttxTOz0pR+mJ4NT2hUi5hJIjm/3lXqLzCG14uVYQDSNK50KOCRVTJTUVGI9FuuSOw8a+yo8XlW4wyLEm+3EH4xHfJE0DwkwgyzPrHxgN/mh+4Q7Xk883ZwjJ5/+m8pIJ0WdkUprt2kOo12Op8OmAjjo/DzExvT5vts25lt5BBJKEgqifjUPU6rypFThBpOVcP3D0j6SIxDLVH1Xpj9+yMtBJevZX2HmlxoAMStep25WYlwnQRHB3oIXVyXmPqq8EEdSgtejTpm6FCw6MMtCghOMrvNWKfVOJyvjA7RSPEjreTH1fTV2JdT8= 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)(1800799015)(376005);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?VjhIT1gzK2crSWkyaThDU1dXdHVZWDVIcXIrQnlJNmNJZk5QTzdqQSswUlNr?= =?utf-8?B?TlN1WHU0c2xkaVdQeTRzaHZBeE8vVHREWHVXSTJ0ZXE4S0MvK2I2NGdHOG8r?= =?utf-8?B?cFZZazZ3c09qcWo0VURFKzV6Sm51bUNSaENHa2REMlRPRHBSRVNrSDljV3JW?= =?utf-8?B?UjdJY29hNXVlSXNYNExUY09hWmc0Wkc0QXE1VUVJdUN3TThKUlN0djBzTlVl?= =?utf-8?B?amE3UVdid2QxTytTQ2Npc1V1NUdQdVduc0VNYlVpekxyODhtTldYYTdHekRj?= =?utf-8?B?VUxaWWtwZWZOa0pBMG1FUmF0Nk1VOWRFOWZiT2UxV3dsTEo5KzhRY0YxVHdZ?= =?utf-8?B?MzVEdVhFSjN3c2dIR2czVzZQaGIwTjlDeUdEaFRQYWFWcUM0cHRCTC9VZVJD?= =?utf-8?B?UjQyQlNEenB1LzJoeFZsRThyTjlkN214RW9iekMzQzl3OXJ6WFZDc0R6aTk4?= =?utf-8?B?TXVpTEM3NXZMMnhBUUo4ZHRYTzlRS0ZTemxOa2pXOWl6WXJYUDZKQnB1NVJ2?= =?utf-8?B?dVFCNlpkcW9VSWJ5UlZuTnBnMUFwbXNrUDZ0TlhwRWVScTREQXhuR1JjMGVs?= =?utf-8?B?cGd3RlVnWU1hUHJlWWpOWm5iMFZOelFyT1FuVVRRRUtQbDBHZmVMSXVleTd6?= =?utf-8?B?WG5YdmdPV0RDa1V1dk1oV05udjRwSkZEN3VTN1pDTFU4NTBuVDlNNEh5OWxh?= =?utf-8?B?RDFmS1VwR3Y2Yk9zSjZOMWNkNWZjUUlBV2xvMzBZbHQrRUM4dWx6UlZMVy9M?= =?utf-8?B?Ly83WXBmZW9kakFqVXVPZlhZeEw4Y1BacVpreXc0T1M0VWErM3V1WUV4endw?= =?utf-8?B?NlRDZGNnL1pyRnFtRzlLdVpPdy9mTHczUzZ3NFp5ZjR3TWFaTjUrcDlnem94?= =?utf-8?B?T3dzSWR3Vm4zUkozdmw2cElOVU55NHlFWEJWU1lrNmZ0ckpLeEpEOW9BbU1v?= =?utf-8?B?TDVXL0xnb2hFRmhoc2ZyNS9VM0RDcWxnUkdPRXlwdm9kZXhuQ050S01Scjg5?= =?utf-8?B?M0JUYW5BdzhTelVTNTIrcWo3Umo0byttaysydjBEUUxZcTh6cFI0NXFrV3NM?= =?utf-8?B?K1hWeStHUEdDeWwxckhYMlZZTlZKbmh6b2xvSGlyQ2pTTHZFNlFubmx1WjN3?= =?utf-8?B?YU4wTysrMTkzYUx3T05RTkw0RjV3RXhYQzRkb2gzRDhBWXl3RVRDbWtZYXFL?= =?utf-8?B?WEQ5TS8ydWUyY004bTZ5ME5zYmNyWkgwTkRCVjdVQTQzc1pyZ2NHdkxucy92?= =?utf-8?B?cVQ1VlNLTUdQUzI5cms3ZWROOCt5Y09NRWJUUzRXbVUxWS84QThrZUtIYlBN?= =?utf-8?B?VVI0OEczNkZzVW5VRk5QOWRSRm9pL3FRa3Z0TmNZUllkcmlzZ2RhY0RHVGlC?= =?utf-8?B?UmdLU01KSDRQWUUybnpFN2RmQXBuN2FVY1RvcHVjRElBcks1aEFjbGZ2a1RF?= =?utf-8?B?TkFWMUNvdXdRWWZEbkVOclgrY0ZjaUkrcGVoQ3BGQTdObjl1REJTK1dEWGhr?= =?utf-8?B?VEY2cVZqTDJidmY2dTRFK3lQNXlUWnFTaUVJbm9POFB2cFc1cFRRdnRrenZ3?= =?utf-8?B?dm5TVHc4MHZ2SmRidldvdlVDOG16aHJld3NBaDlDUkRqa2IzVUZ0ZldVRGdl?= =?utf-8?B?S0VHQTQza3p2Q2xCTUhSZWJuYVEzeVZNQ05FOHdDZGpkUkRZSE43RXozL3VB?= =?utf-8?B?QlNObnFEM05MY1FTOExXdEozYWZHc21Ed3N5bkM5akJDNWx0THBjWUdTSURE?= =?utf-8?B?L1N5OFpYNDJ2OHlGNklJT0RQcEJLd2t0bXlGZm1DeU9HTUc2TWZ3QUlvYzUx?= =?utf-8?B?aTA1SmtnQlA1N1dROHllcGYvcUl1YkNyYUlmWVBNaEwveFBvSkNadkFXZWpa?= =?utf-8?B?bnhJanhDdTJ0WmEzK0YwWmhVTStRNEM1UlhJUmo0M1hOSlgzYkdhcm9JeVNS?= =?utf-8?B?VEc1emtJVVI1b0YwMHlVSm1sTHN2M01PajNVSkMzK2dVdUJlSGgvN2ZYRXRO?= =?utf-8?B?MHVBVzBsTmlQeHdCOFgrYmR5ZGh4WHJzV1g1ODdDdkFqamhXclJzYTYwWnlX?= =?utf-8?B?T2c2eUJkMHEveEhkZktjbEFkaWc3a21pb3JYM3J2R3E0Y2ZQMFcrVXRDTEcz?= =?utf-8?Q?KAxtsiH7imZuO+MpAQywaup83?= X-OriginatorOrg: oppo.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5806cd3c-ede4-4b1b-96b7-08dc3f3abc89 X-MS-Exchange-CrossTenant-AuthSource: TYZPR02MB5595.apcprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Mar 2024 06:41:08.5742 (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: XxJUKBalBgKSm7DcHxwtMX3Yv8b3jo6XuhrL3A6WCoJcQLEcVwwGgxqk2yCUo7ODIxsb/vus/eMoexPEhnaSzw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SEZPR02MB7471 X-Rspamd-Queue-Id: 9912E80021 X-Rspam-User: X-Rspamd-Server: rspam04 X-Stat-Signature: 7j1qgzbn4cc66cykbmymni8ihhof9h63 X-HE-Tag: 1709880074-55104 X-HE-Meta: U2FsdGVkX1/X5I8GH3jT0qZnCOrXl31v+0nvEr3C0Z42XaWjvt49RA8UulGe0LljTEe+mSY2dX8Bpu+ch//sViamcf6KHUdeGjdOJe0UJudGM4b0FbBJ2ufIYpDXV0knjFbGu5AzheYFflqfDcLXMljUPjS3z1gZDZIZz193roIWPT16SZPbe3S/SEvTG+cmVNvQ17ebQ/PGb/xy9++g9HMNwvp6MQ3/5+knu+pUJK1slz8xmsT8UyxuD341xxPyffmoixYXp8MAd/gwQ46HE9QQCZ9GAwIzRcEj1CF0BcoFAcQCD56wLXlBp+Bz8y1Hi5QyERubXPqGvLusvgVNwUvoyyjjkWOrVi0cCOvCg0Y0dc7CbzNoZ/pYLXU50b8MeAPy/IWnnVY/oI1LTnjIXtqkHN6OkPhEo11ZAqbTD6VQxy+SeLO6xrS5E5NYqVNDhEW9WTLglH8O+qMcTzXKMqT6lj38Y7NslcbVGkrPgKr6erimdFVDZKgSWjNZQAF9BvnZ8b3o17I+a0WxiObQIrMC8DJO/K4PRqSsocSP4VxzOgAp2J0zmH6/N6QeLAeetF5+7Ibec6LdRJ7LTPdvQDKn2YpMys6Fiapkz7agDl5rb9evkXvZ4EQqYfZBimr0GjYS6aFRYCuQubZoe571Yk5nlRA8nDQtrngjCUAfEoiaxt2XML23Jd0U7tI3W5ykxxi3hRzmhiMF7Cqb0/5Q8VA8d/CAdqxqBLF1qc5WzI8bemMfQpH1zzUj8blexUeiQZNvyHWrEvM/VyRIz0hIXPmK2EjtBwvBXb3Gq+sIW8rDlbDYPovnivsRSERMgGfX9JHVr2u/ojlS+20Y256rhKJfIDG0TMHWfUJBIMMsY3AjIPDIQ7A/r5MKmemnLBvFU14x6uX06LgNVdMhRz/005A32CmIs4DqKoDOC2BN6xg0uDKaisIlf9SE1Eju4IkqFzBmV/WIGA4x9QZZQyH YrI3th8x kS2ZZooz39Aektadz6Wt/kdmydk3eNeaeDUiSPq33wKN7f2B7I9O+wLRTEMb/4oKXTxcazkiQh8kZrCYv675wEN+nRu1QO0OEzPJBJcubbWNNXBiCQ19rsvbcBNk3GgleLY3rPnFGNKRL2Hwpfq8nfDXXUCff+1283efME/2hafNm02dZJMgr3WerUde6eTZ6Ixvud7AuANiJCV9i0hYI+9YjmYB8pVwT3BJJ7RMTTdvRBky6kHDOlnhj7mwut7FzP9dRsLjVOqyN3NPwhtuTmkO/jIVr0xVqXb02rPl7y170qWAggpYUiWvF2n1R2fPjaUwcFMQxZlb6X7gVb9boOeYN/lPpRBKsHEvWqeMU3wsgP12+lJZvMJWFebpibjrVKnppzxNbIM7bZlES2zdRSrcA9yeasrzkjv/CFBa1/p7P2NxZUVMzMIuFSG1TXIMkgXUPwbzVX2OyBeDxqfjfNU7rCN7b/u8Dn3lNCsD4lFnHWtNFFQc5FofL/zrnuWTpNtzSxh+Wz0PSZAfjCzT/R6EoB/SzYofmVMH5 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: --------------4ZUTdsuDnawiHXj5HAgiA8fT Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit 在 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. --------------4ZUTdsuDnawiHXj5HAgiA8fT Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: 8bit


在 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.

--------------4ZUTdsuDnawiHXj5HAgiA8fT--