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 A0EB4C369B2 for ; Mon, 14 Apr 2025 11:47:30 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 32300280013; Mon, 14 Apr 2025 07:47:28 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 2D6EC280014; Mon, 14 Apr 2025 07:47:28 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 08C4B280013; Mon, 14 Apr 2025 07:47:28 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id CB19828002A for ; Mon, 14 Apr 2025 07:47:27 -0400 (EDT) Received: from smtpin05.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 19CF71A1E69 for ; Mon, 14 Apr 2025 11:47:29 +0000 (UTC) X-FDA: 83332474218.05.36DE03A Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by imf14.hostedemail.com (Postfix) with ESMTP id A6344100007 for ; Mon, 14 Apr 2025 11:47:25 +0000 (UTC) Authentication-Results: imf14.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2023-11-20 header.b=i09WXcAY; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=tu8fxTxl; dmarc=pass (policy=reject) header.from=oracle.com; arc=pass ("microsoft.com:s=arcselector10001:i=1"); spf=pass (imf14.hostedemail.com: domain of lorenzo.stoakes@oracle.com designates 205.220.165.32 as permitted sender) smtp.mailfrom=lorenzo.stoakes@oracle.com ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1744631246; a=rsa-sha256; cv=pass; b=rIY/0XBFjyCsoiXW3HZy0/3gmGxjUuuwWZ+yvNzLvK/lx7f+hxsKAJvsaNUZlRNasZ5ep0 mRqur2aDvqao6I+rF77dqTR+YFf+QqN37hnRhIuyFKkRG+FzQ37hgZ9rI4rRuqWSr8xadj bzRUUZD6tEVoLawSI7ELx6C+UBtYQYE= ARC-Authentication-Results: i=2; imf14.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2023-11-20 header.b=i09WXcAY; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=tu8fxTxl; dmarc=pass (policy=reject) header.from=oracle.com; arc=pass ("microsoft.com:s=arcselector10001:i=1"); spf=pass (imf14.hostedemail.com: domain of lorenzo.stoakes@oracle.com designates 205.220.165.32 as permitted sender) smtp.mailfrom=lorenzo.stoakes@oracle.com ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1744631245; 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=DuQ6SlKLyd8WGMhiWFc8nHzxSdGPOouoVFYbHqY6srU=; b=m/uj+7wpaJuqRI+Nt+2bJKOATSYHpoWnG8iqjiPiUrTWAUJ9Vu8S7FKciZg3vmAdS6ZYCX GRE5Uuos8/3rUDl1W3HDSKdpepjMkApfJJZJCs1hWYaDBi/OfOCNEtXquxnp4HQe3reukm 2EH45xchKR7SDuoU2Cd31lVRMcGxScA= Received: from pps.filterd (m0333521.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 53E9qYmP009881; Mon, 14 Apr 2025 11:47:10 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-type:date:from:in-reply-to:message-id:mime-version :references:subject:to; s=corp-2023-11-20; bh=DuQ6SlKLyd8WGMhiWF c8nHzxSdGPOouoVFYbHqY6srU=; b=i09WXcAYAywVg2TK7I5TXcBvyZuzxA2AeZ 7GwGEuBUlJp3vWWp4aXq1WhQ63Qksa250BFTMvgZMSrP++6WtGuHV1lpYkuSheCa BgWDtpwAJi204qfqaGWeWXtkVtiJVhJacOahTOgup6OsFw8oCwVpaZ5Bnt6oBLGO Rn9ZE6T9w/W2ZQO/rJzs4hJuqFABKovSmsajbueSZYuLzcdO3/G2vyKMWcGmy4bm GBtNpQ7gla+7LSevr344Ze8lOnbiBSaHfR2AxUOt7L4otcy2+c0JFX1LzKrkkMil ez51/0nnilnx8h9Egr7yVxBlBmvrT2xw5TQwJMAJj1BHAFyX2vEw== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 46103vr591-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 14 Apr 2025 11:47:10 +0000 (GMT) Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 53EAB1il005670; Mon, 14 Apr 2025 11:47:09 GMT Received: from byapr05cu005.outbound.protection.outlook.com (mail-westusazlp17010002.outbound.protection.outlook.com [40.93.1.2]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 460d5tn9fk-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 14 Apr 2025 11:47:09 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=SnSgNC9oTLBp5ZagLF0e3ihioNQxOvZUOEv2vvo1KC25zx30x3LWRn3ypXK6FMf8d7KP+Xrv9beGKVzoGZki5p1LH6bzaN9+Ih4MAbqCF/TSEVCRxKKE/qRmWDIuycVhAcB3TyKpNjbWMJDcaL0I0xuFtgulN08bXzlHnmJdFGjz/AFCDC59HOhn5aBLshUSFYMdvOpWllfnzI8eB5iz4N4gmF943oP8ZmzYBhiI/+/spK85bbpXl4G0g/a6AaIHZ3Ya0YGfMCjDlmqPm5m4NduVmqdXM0nGD+zbE+IOq1DTXRGh9GSgwg9sBlirvieclA9jstFhWpSD2EQ38Tly5Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=DuQ6SlKLyd8WGMhiWFc8nHzxSdGPOouoVFYbHqY6srU=; b=wsgIhfTGGs+axY2rgUiPzzf0SRxV+hL20J1/tT6nyY+bYD459exKpNwgu+SCQvOkRnbXdI0hdoO+X+ZFB8laTWWsxBOZtS6gNRlGxEbCdyh+XIM7rX3JhyqFcDvw2vV78K42iQqK79e/JSRsu/5P6om5IU1CcYKR2/vNDVZNfTaXlKqhkUuEFOK7z1PSZXBWhh/g7qTjNznYCTjvE3dCmdFf85TqTOARQK+89w/m/YMQ1lpJMdKWjFRqMI5lEakgCrCcEJEWWBV5JsB7qmlwvagsffAPHOiNhq+0wTAlqfOh1w8WHiGzxs9B1om5govrZbBldoj5s466/ofNQ1yj7A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=DuQ6SlKLyd8WGMhiWFc8nHzxSdGPOouoVFYbHqY6srU=; b=tu8fxTxlz6EI8wcw29hjF3KXByqEMtDrtaAkos88M6Ru3llWfNbAn/ybzdgA/m4JxGyV6ui76JqdQtkzrO8uLJoeXqTVJVfFHiL2Fyay4blgRFwIbjrUEiwDg63AmF/oMeiJkBsRWm4LaHhrGa6ZjhvP1gT5oq2PjY+6jtDBTYU= Received: from DM4PR10MB8218.namprd10.prod.outlook.com (2603:10b6:8:1cc::16) by IA4PR10MB8397.namprd10.prod.outlook.com (2603:10b6:208:566::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.31; Mon, 14 Apr 2025 11:47:07 +0000 Received: from DM4PR10MB8218.namprd10.prod.outlook.com ([fe80::2650:55cf:2816:5f2]) by DM4PR10MB8218.namprd10.prod.outlook.com ([fe80::2650:55cf:2816:5f2%5]) with mapi id 15.20.8632.036; Mon, 14 Apr 2025 11:47:07 +0000 Date: Mon, 14 Apr 2025 12:47:04 +0100 From: Lorenzo Stoakes To: Jinjiang Tu Cc: akpm@linux-foundation.org, david@redhat.com, yangge1116@126.com, linux-mm@kvack.org, wangkefeng.wang@huawei.com Subject: Re: [PATCH] mm/swap: set active flag after adding the folio to activate fbatch Message-ID: References: <20250411082857.2426539-1-tujinjiang@huawei.com> Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20250411082857.2426539-1-tujinjiang@huawei.com> X-ClientProxiedBy: LO4P265CA0317.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:390::18) To DM4PR10MB8218.namprd10.prod.outlook.com (2603:10b6:8:1cc::16) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM4PR10MB8218:EE_|IA4PR10MB8397:EE_ X-MS-Office365-Filtering-Correlation-Id: 9e4c5e7d-f777-4ecc-fb10-08dd7b4a1570 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|1800799024|366016; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?LuRE1yslG3Ba2GJkjV/eFDYZKTg22q5PhjG14AetHaJhUjw99tjwKyQlen7u?= =?us-ascii?Q?6nc53qhaZCD87mHgxnce11eDarGYInm9AS3d7PvRotOhMVHvrodk8g4vv60X?= =?us-ascii?Q?mLD2BQvIsKnG7JReD/6bp9UQdtG68qXz4qW0KD5OdbrlcFh46nrlr1ZLKtfj?= =?us-ascii?Q?m8GE3AHPuuWI8eCtiwjlGXsibPxJa74n1wmWqiiLNPXUcFmSjEUaPJRmgZ2K?= =?us-ascii?Q?Z8Z7NZLzXhIB4qYmDJz2+vcgRlEhKSLyUpXI6uhFad5xjGy0m8Ztt8NnStUJ?= =?us-ascii?Q?TEcNBbLiMIyDMaTouUf9aIdb89cp0vwXZZwhUA1DMZK4RBDbyX31UZf6ZGgB?= =?us-ascii?Q?VAajnw0S804GwGooUicw55Gm1zcPb/Ks7qng5ylsCtDKmyqmvO6RbwuxwC4e?= =?us-ascii?Q?kRX1u42NIkmoxMGiArimLn+R3A8C6E0L70chTAYLr7QmB31g/WkfHUUTMsvL?= =?us-ascii?Q?mdU6rziWcg66cpj0o2LpIv3l71t8DwN2Kr2TEE6YYPifZScCq7qEl/dXBiCq?= =?us-ascii?Q?UjDOKVtqy483IV1mY7JrS4LqGiWLdMH/eUpbTJES4lKVk93/2fkwEtnu2iEa?= =?us-ascii?Q?rYNl+mDUOovCX1tLsnrxu9oOqN8kwy4qkcLXn9fPElQ0J5ad+tcSh9RYk7hH?= =?us-ascii?Q?Mml/Vmay0ZjLkVf8TIFozGX9ZUcuG7sc+IOMzq046PXOf/hI227UkU2ixUVE?= =?us-ascii?Q?2lEtIns7ZVIeYulYbnjVFBQiYL1sulQJc/J+k6MjGW9azeuV4std0js4cKd8?= =?us-ascii?Q?a7uhujGdtRXzuu2rSnA3LRZMJNDPF4w6fc/2FWaWCL94SuWi0EIWQLoU9KaA?= =?us-ascii?Q?9pFaKnxUaYyrPaWPoquPmt0RMAejoMNjnqA7Oneg4MFQ2okVKoSaob1SLhRV?= =?us-ascii?Q?khWXzTYVCqh754CUAxcD1dtYTUgCxfhdRam5xeKB5A29nTj0d/EpRVqR9ius?= =?us-ascii?Q?Xpn4jVdOMzguLe8SyMk9BQGycWDv5atstrXDMLuMtyifZxXs8mtHIWEYAWD8?= =?us-ascii?Q?bNjRHyZRyJY4L0FVKidIHHrUCEBdHBCdDIXDhcHsXyv/Xw2AkHmXYl1rl9sj?= =?us-ascii?Q?DWd/nHZOvekZsl0hHlkOitVZgNcg9oNMBhqKAMEGQ81KB22gaY/1LZnjmXv4?= =?us-ascii?Q?ZowQT2jrn/8LXd/axWyHuCMkoc0oTsgD0JkmEAf8eAXWlPLg96IQbvuGHtoa?= =?us-ascii?Q?diuWhTF89prlfNIkX3QRc/4Q9IujGXC1cMqwnzMaw0OPbfvthNKXHyJ8McNz?= =?us-ascii?Q?Vi6l0kK32wtS30a26G8a/pDlZrry+lZM1eCB++WXDNnJ72/E+YhIPa1N/t40?= =?us-ascii?Q?kZxrL2sktQKMo9C0u6ZK/OO2s7u0vWJFK/c9rkRbDiwwYT7quB433Z3RJ84C?= =?us-ascii?Q?y2DWXAFn8Ue/OJtwJOkxCzxhP7MEJXx/DWXAtc+1hRnHeQbWcDS4s4Xd3VK6?= =?us-ascii?Q?yoz/pLp8sDY=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR10MB8218.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?lehK2DlhPkDzltg/Q4BOc1CpVbnfjAi+j2aEYSi6Vt2hegopLICKlYIrrXb3?= =?us-ascii?Q?O7QDoK86gdGoSu5pwh+MJ7pHgUQ8XRC1bRMVZCMYytezdKSnqdJZrikkC8Xb?= =?us-ascii?Q?5O/R9P4gDyARJgSsjh3GfHJMWNZEGU0HKsqiuJVNbTDIWNQwS+8WNOLm6XAF?= =?us-ascii?Q?xG21C1DtW0Y8YkEyjwGuUC8MHSm4KbMKBN3W+S0rnm4OIeA0G9ddw9JXFdz7?= =?us-ascii?Q?KA3LsGCmCzpcAUNou+y5hENG7qOtMXwn7zrxv61AFYl7OFvJ/DO0KlGtHN2N?= =?us-ascii?Q?fkLcw+pXklg0QOCrAr8jnldvtfjDxO/gTpxXbXCSQijbcW0P4Pny9v7C2Qt+?= =?us-ascii?Q?S/IaYRFSBFO6FtV82PS5cLlgfc/9gqQRkj77kzwqTIpO2vE0hvOVdqmnnTlU?= =?us-ascii?Q?JOtCLz7mtb/9yPOVLpE12/fZCV8CDse0RiTdv4MhvRa/7pSQonQz3LYqdzgr?= =?us-ascii?Q?a0nvSB2Xk5YtrNKs4Tpkm9AtLdqAl7G9Gmkwc3g6i/Nl1WQbgBvbW0lsL1at?= =?us-ascii?Q?zp/XLxd72CGcYHx5fwB//Sszm3inq1ZKLpbRp3CvkOm+VeZJ0+nLfd/wyoAX?= =?us-ascii?Q?++SJcLhhO0bFsnN4BI+TL8r4s+DvIQCcSybvzRXn4kkwbyZTtGlZPxjnEy0B?= =?us-ascii?Q?vpgPMiR3oBlpc688ASipx43SL/z2sRScPnvaudh2O3Jd+fRixLM9y8hJuyr3?= =?us-ascii?Q?IqTpoiktq67i83oFmxUbxXbOcrq8aEjYu7kxHkMFhp/gRRI1M6+RnPpej/GC?= =?us-ascii?Q?1wVIgQsy73NXJ9d0kXasJANUITzj8HpkEVb3Nhf6gXE1us/jlB44ZJm4E/cy?= =?us-ascii?Q?UYJNZNttX9V4+YxeRvOLNY7QpPAktVBPh/YXLVkoZtVhrodEnjqzM2bF2SrD?= =?us-ascii?Q?24ppco4FLrDaIyVsRdIM6X9MF0mQDrkK1QHWn31P+BPyLNuVcamCQzFMHvP1?= =?us-ascii?Q?MMpf9robwNpVIcGTZUQpFWMei5LWn0SD3IE9xCAltJJJQw0xZlsrFvQFU8/G?= =?us-ascii?Q?BYNU4Qn93SBUXdE4yzXvWhKCkDHH4TsuOl3jE8LMIxn9qhHpn6sOROL0gS/V?= =?us-ascii?Q?xqa0FQD2JioJrwfPDB965UPOv6fecmZy5v5cdZe/kdt+GtghRp8LHCFvhLuv?= =?us-ascii?Q?DRlZTiiyOpRC2UzeaIhsqKzrJar/DQ+9t7Pw8qz6qyH30is1OW/EVRP8CP5N?= =?us-ascii?Q?K2EPxOcpCeFqrJ+fCYlC48VO+e1Qs4nFrsKfBL53doktk6GedqiQgvLLTwLg?= =?us-ascii?Q?nRONTZWHy8bbVw3WncfW9cq6xyHCaBrBd31VCWP8HdM2zILKYSgT95gysR2o?= =?us-ascii?Q?w2PAosdiyb+WjzdQv4zS4J9etf/DBk/KzEAy+foo66kjEoxgop4fAWiRiG9e?= =?us-ascii?Q?EKI47FkFeshoJZBiF0ibYbI3FCW3x4+dr6V3qnfK0yvPzMeN6O8YXBsqyBhB?= =?us-ascii?Q?P9p02vJCZkAUIWYjNeM2jl4A5iWIOBBS9f3hXbRTRF5pLRVlaYQFFH+V5ynV?= =?us-ascii?Q?se5SxvWaKdblCNb38kKsR4XNx+B9LvqW9DvW8KZpfaLjf2AkXXTpQZLTQFpJ?= =?us-ascii?Q?PpZJ3yprCLOy3GEKxflaE5R1tR2RGkH+fVyt82pCgz94H+xBwLXf80pyaqAf?= =?us-ascii?Q?iw=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 5a2kb/qAUbUtNE5z2+J1CMSxzLzT6YQNKjDGgg96hY3LGTZG2ZHDgdcElsGR6Y8FLZHAo5DVcyFZdPJtuOFJv2Ck6MA6Hm2ls75z1Pa57S6FD9CoJZe7hD5Njs8vn8eMNlzTHaz5rHQkjj3PooynKeTLwQzI57zIz3nWq82YwC6ymB1ujRQ+/N73MQD7hPSBEs19PfpgwZ0BlEhpj2VVn04aNxpzUWzqOJOhgbLJoFL+TdUmZWFhKaMMINJkQ+ycsV+RvKLu4YcTgJv3G+MRHtdnzK+h4ns1TUlG6Y/J3LcD+LZd7MHmFhgbxAb6VKvrKY2LLYJqKEH9UpjV/28V/VBSEZZkUzQWWONja+DAIYawmzHIS0ROnVvZdjZAxL9S/36GOzbkkoZ9nw4y53lM8ssXVLbbJI9481c/tdZjJfWETDFaAJEwQHHE3Rd2/BUHpe9Dcs0y/XxVlGhaNx9xyNHGrnZEsGHJ+M/cw0D2FBXeoqL2YEFgBb4P1Z+Fxk6izicXTie+DWv1fhuCkRhsdj9ILdUcGVWd57ex8VXpgAZwfw7CGwwcEwVUnPLjth2jjk3+20kMNmrj83ihcnAQ5JTtZkQbCc2CCSW1paqtBks= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9e4c5e7d-f777-4ecc-fb10-08dd7b4a1570 X-MS-Exchange-CrossTenant-AuthSource: DM4PR10MB8218.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Apr 2025 11:47:07.6868 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: yfFF8Zl0JKiTfFi7usQYyNXEQhMeaT0hdOISkUfLp1rt8q/V1P7xEkgCJUBw1gjBPdt8RV/G8Kk2RlxmHkIgMUu8r6UDZeW2q9aYDOFVZ0E= X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA4PR10MB8397 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1095,Hydra:6.0.680,FMLib:17.12.68.34 definitions=2025-04-14_03,2025-04-10_01,2024-11-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 mlxlogscore=999 suspectscore=0 spamscore=0 bulkscore=0 malwarescore=0 adultscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2502280000 definitions=main-2504140086 X-Proofpoint-ORIG-GUID: LscvJEyM0pe7l97JXultJc9GIuDeO_8y X-Proofpoint-GUID: LscvJEyM0pe7l97JXultJc9GIuDeO_8y X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: A6344100007 X-Stat-Signature: 5og6ky7p1adgq6k8j51joyeiusz3x814 X-Rspam-User: X-HE-Tag: 1744631245-672606 X-HE-Meta: U2FsdGVkX1/+pf12OZS5qhkYYWb4B7bP1t6q1foun6ckkIf2Y58gn6SqCh45snAyfyKTVI06QeA5hQ9q2CGy/y8bvWt5KJedfGgbrHaP7rGV/98Xu8+FRfKciyzNClzLFreKruYVHZ2mrAiaQvC6s8Atp5wTda33071KiyAzaBVzj2geB0txzYofjkM7sapUd3oMN7rGbU1+zKp//tHRw7I2OQm7xJSLNwvIZCzW1WBFofBkoW7SgJ1uJYRyiXYaVI5lwQT/MCw8ZKXrW6GZH7+9jrc3ApaDwAcTlYGkQXM0N/QS7450CZ2LSHLWI6em3TzBoZduksNKZ1EllEB6/90rsYSJP9MFbXv8JeG7h8498ugc06oLazTap52QhChBW/jShr3ZyyWqW7rFuKXwIvYyiI2o16nJKhLdCGL+ZOz1H21F+CNXD6B56y81m10jb0xOTD1O9FYSv0IJQHfMEnPy0VujldLNx0SLrCPTJTFyD2fPiP5H7EgQQZ6uUUcPgG6yGC7a0ZNAgntJ2gmTgeTSj5EDjKFjYvsgCZYkL5hU7EOzGL+ccr39eiwO1WC6DNkqhsJQrtZL9yopaGqxG7jiBBvYgp8TuGQWaKEI5/zDj6VMxODpYLW/uZdHdAHFDEHgqsrnfynpZIdac9Z6efP41/jTu2F+wUe+dEBXF4QghMMAQXneaKLcv3hnDPRowgn8ncrHYHKSqrDMNhnRTudmZzISW4TbndTUdPtQdLssRAPkU7t4q+yrHOG6TppxZeT8oVvv+5+WhsERngE7r8pg+IXgHlCFVF8GxCO9C9MwBQV5mnfOAuG8KJRTVpri9inZqPtxOrU95cSokUHk5qDs9pjeUB5OFhgWhiPKEMchvQ/0w1iYjMBZl9dJsqWtt7+3/jsL1l+IFZTiLkbzEznDt15QDldnoPm3FgAk28t3LzwSdNPPTweh2btyEJOzTClWBoQkKhmRJfCzX4N 3gjRxkz+ jEhCP1JC6Z+1HC5Vm5oHnlAxbN6H/rVEjyhzRk98zlzIwY/PKzmPnbgo+eaPeFnx2q0POv8B5vJG+yA+u/zXh9WB7OJq1mLm0F24aYhH/qVOjmXNeAfART85Ztkd8CuMWYXP6gUkU1RFHNNZTcwJt4wxQZf7kvL4t3UCDgd0RGizmEXZ3NuE/aNVmlspOmTJ9423tFisdaurNk7/nVCrCTooV8z8gFUIHUYSHczxfmogV7n/4nUxiqGanCFgr/0V2eCaWtEr1/OkRqpvwb10rS0S05pd7CYuUBykSgH43DMvK2QyB8Tp8UkBeQwADwp1RHZCCdB0xMGmrQDF7SCk1IloGUV1Yw9T6W4fNKvlvH65oxBl90z6uCMNxaIQZqV1Po9wCzlvsBrFI52wGskyOiXB52WQGKPILmp1Yxh7MHKz0DKKPGOWyxNoc9dRGit+2yQJwcUwj0gqreRGzQrC2Gjm6wxsDPH1HutwzrSnEpfzqnrWx69s4a9FECg2wGHGp0V+SoP7HRuZdDtpA4LHY+3wzIqOetj5Cm2ionRoGrvAn+TD8XHDOeKWHiBRjykX40NrpZ5G6twG2KASy1SJUwU/jb0Jw5UY9dMy3KXtW+GeciAJkNnVBPPb83W6I7DrLidtu 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: Hi, Andrew - could we drop this from mm-new until this gets fixed? Thanks! This patch is currently breaking mm-new, which now does not boot with CONFIG_DEBUG_VM. It seems like you're underflowing the folio batch? Stack trace below: [ 0.773399] ------------[ cut here ]------------ [ 0.773400] mem_cgroup_update_lru_size(ffff88817e801440, 1, -1): lru_size -1 This is line 1321 in mm/memcontrol.c (actually had to comment out the VM_BUG_ON() as it otherwise mangles output, fun! But if not removed obviously the kernel just halts): void mem_cgroup_update_lru_size(struct lruvec *lruvec, enum lru_list lru, int zid, int nr_pages) { struct mem_cgroup_per_node *mz; unsigned long *lru_size; long size; if (mem_cgroup_disabled()) return; mz = container_of(lruvec, struct mem_cgroup_per_node, lruvec); lru_size = &mz->lru_zone_size[zid][lru]; if (nr_pages < 0) *lru_size += nr_pages; size = *lru_size; if (WARN_ONCE(size < 0, "%s(%p, %d, %d): lru_size %ld\n", __func__, lruvec, lru, nr_pages, size)) { VM_BUG_ON(1); <------------------------------------- here *lru_size = 0; } if (nr_pages > 0) *lru_size += nr_pages; } So, nr_pages = -1, size = -1. So I guess the problem is that mz->lru_zone_size[zid][lru] value is now negative on delete? So we're underflowing the folio batch? This is called from the always-inlined update_lru_size() which simply passes nr_pages in... [ 0.773415] WARNING: CPU: 2 PID: 92 at mm/memcontrol.c:1318 mem_cgroup_update_lru_size+0xa1/0xb0 [ 0.773423] Modules linked in: [ 0.773425] CPU: 2 UID: 0 PID: 92 Comm: 9 Not tainted 6.15.0-rc1+ #8 PREEMPT(voluntary) [ 0.773426] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Arch Linux 1.16.3-1-1 04/01/2014 [ 0.773427] RIP: 0010:mem_cgroup_update_lru_size+0xa1/0xb0 [ 0.773429] Code: 00 00 00 00 eb ae c6 05 6f 39 77 01 01 90 89 f1 48 89 fa 41 89 d8 48 c7 c6 80 a7 22 82 48 c7 c7 6a 66 7c 82 e8 c0 23 dc ff 90 <0f> 0b 90 90 eb c9 66 0f 1f 84 00 00 00 00 00 90 90 90 90 90 90 90 [ 0.773430] RSP: 0018:ffffc900002aba80 EFLAGS: 00010096 [ 0.773431] RAX: 0000000000000040 RBX: ffffffffffffffff RCX: 0000000000000000 [ 0.773432] RDX: 0000000000000002 RSI: ffffc900002ab938 RDI: 00000000ffffdfff [ 0.773432] RBP: ffff88817e801498 R08: 00000000ffffdfff R09: ffffffff82b18528 [ 0.773433] R10: 0000000000000003 R11: 0000000000000002 R12: 0000000000000002 [ 0.773433] R13: 00000000ffffffff R14: 0000000000000001 R15: 0000000000000001 [ 0.773435] FS: 00007f5e47c3e880(0000) GS:ffff8882e085a000(0000) knlGS:0000000000000000 [ 0.773437] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 0.773438] CR2: 00007f5e475fb2f0 CR3: 000000017e802000 CR4: 0000000000750ef0 [ 0.773438] PKRU: 55555554 [ 0.773439] Call Trace: [ 0.773442] [ 0.773443] lru_activate+0x121/0x320 [ 0.773447] ? __pfx_lru_activate+0x10/0x10 This indicates that the move_fn() below is in fact lru_activate(). With inlining I can't precisely say what ultimately calls mm-cgroup_update_lru_size(), but given the negative sign being the problem, it seems almost certain to be lruvec_del_folio(): static __always_inline void lruvec_del_folio(struct lruvec *lruvec, struct folio *folio) { ... update_lru_size(lruvec, lru, folio_zonenum(folio), -folio_nr_pages(folio)); <-- negative. } This is called in lru_activate(): static void lru_activate(struct lruvec *lruvec, struct folio *folio) { long nr_pages = folio_nr_pages(folio); ... lruvec_del_folio(lruvec, folio); lruvec_add_folio(lruvec, folio); ... } [ 0.773448] folio_batch_move_lru+0x56/0xe0 This is: static void folio_batch_move_lru(struct folio_batch *fbatch, move_fn_t move_fn) { ... for (i = 0; i < folio_batch_count(fbatch); i++) { struct folio *folio = fbatch->folios[i]; folio_lruvec_relock_irqsave(folio, &lruvec, &flags); move_fn(lruvec, folio); <----------------------------------- here folio_set_lru(folio); } ... } [ 0.773449] __folio_batch_release+0x2c/0x50 [ 0.773450] shmem_undo_range+0x297/0x650 [ 0.773454] shmem_evict_inode+0xed/0x250 [ 0.773455] ? atime_needs_update+0x9b/0x110 [ 0.773456] evict+0xf2/0x260 [ 0.773457] __dentry_kill+0x6c/0x180 [ 0.773458] dput+0xe6/0x1b0 [ 0.773460] __fput+0x12d/0x2a0 [ 0.773461] __x64_sys_close+0x38/0x80 [ 0.773463] do_syscall_64+0x9e/0x1a0 [ 0.773465] entry_SYSCALL_64_after_hwframe+0x77/0x7f [ 0.773466] RIP: 0033:0x7f5e4731b83b [ 0.773467] Code: ff ff c3 0f 1f 40 00 48 8b 15 d1 a4 0d 00 f7 d8 64 89 02 48 c7 c0 ff ff ff ff eb b8 0f 1f 00 f3 0f 1e fa b8 03 00 00 00 0f 05 <48> 3d 00 f0 ff ff 77 05 c3 0f 1f 40 00 48 8b 15 a1 a4 0d 00 f7 d8 [ 0.773468] RSP: 002b:00007ffdf7d82bc8 EFLAGS: 00000297 ORIG_RAX: 0000000000000003 [ 0.773469] RAX: ffffffffffffffda RBX: 00005601862b32a0 RCX: 00007f5e4731b83b [ 0.773469] RDX: 00007f5e473f4ea0 RSI: 00005601862b3470 RDI: 000000000000002d [ 0.773470] RBP: 00007ffdf7d82bf0 R08: 00005601862b3010 R09: 0000000000000007 [ 0.773470] R10: 00005601862b3480 R11: 0000000000000297 R12: 0000000000000000 [ 0.773470] R13: 00007f5e473f4ff0 R14: 00007ffdf7d82f60 R15: 00007ffdf7d82d60 [ 0.773471] [ 0.773471] ---[ end trace 0000000000000000 ]--- On Fri, Apr 11, 2025 at 04:28:57PM +0800, Jinjiang Tu wrote: > We notiched a 12.3% performance regression for LibMicro pwrite testcase > due to commit 33dfe9204f29 ("mm/gup: clear the LRU flag of a page before > adding to LRU batch"). > > The testcase is executed as follows, and the file is tmpfs file. > pwrite -E -C 200 -L -S -W -N "pwrite_t1k" -s 1k -I 500 -f $TFILE > > this testcase writes 1KB (only one page) to the tmpfs and repeats > this step for many times. The Flame graph shows the performance regression > comes from folio_mark_accessed() and workingset_activation(). > > folio_mark_accessed() is called for the same page for many times. > Before the commit, each call will add the page to activate fbatch. When > the fbatch is full, the fbatch is drained and the page is promoted to > active list. And then, folio_mark_accessed() does nothing in later calls. > > But after the commit, the folio clear lru flags after it is added to > activate fbatch. After then, folio_mark_accessed will never call > folio_activate() again due to the page is without lru flag, and the fbatch > will not be full and the folio will not be marked active, later > folio_mark_accessed() calls will always call workingset_activation(), > leading to performance regression. > > Besides, repeated workingset_age_nonresident() call before the folio is > drained from activate fbatch leads to unreasonable lruvec->nonresident_age. > > To fix it, set active flag after the folio is cleared lru flag when adding > the folio to activate fbatch. > > Fixes: 33dfe9204f29 ("mm/gup: clear the LRU flag of a page before adding to LRU batch") > Suggested-by: David Hildenbrand > Signed-off-by: Jinjiang Tu > --- > mm/swap.c | 26 ++++++++++++++++++++++---- > 1 file changed, 22 insertions(+), 4 deletions(-) > > diff --git a/mm/swap.c b/mm/swap.c > index 77b2d5997873..f0de837988b4 100644 > --- a/mm/swap.c > +++ b/mm/swap.c > @@ -175,6 +175,8 @@ static void folio_batch_move_lru(struct folio_batch *fbatch, move_fn_t move_fn) > folios_put(fbatch); > } > > +static void lru_activate(struct lruvec *lruvec, struct folio *folio); > + > static void __folio_batch_add_and_move(struct folio_batch __percpu *fbatch, > struct folio *folio, move_fn_t move_fn, > bool on_lru, bool disable_irq) > @@ -184,6 +186,14 @@ static void __folio_batch_add_and_move(struct folio_batch __percpu *fbatch, > if (on_lru && !folio_test_clear_lru(folio)) > return; > > + if (move_fn == lru_activate) { > + if (folio_test_unevictable(folio)) { > + folio_set_lru(folio); > + return; > + } > + folio_set_active(folio); > + } > + > folio_get(folio); > > if (disable_irq) > @@ -299,12 +309,15 @@ static void lru_activate(struct lruvec *lruvec, struct folio *folio) > { > long nr_pages = folio_nr_pages(folio); > > - if (folio_test_active(folio) || folio_test_unevictable(folio)) > - return; > - > + /* > + * We check unevictable flag isn't set and set active flag > + * after we clear lru flag. Unevictable and active flag > + * couldn't be modified before we set lru flag again. > + */ > + VM_WARN_ON_ONCE(!folio_test_active(folio)); > + VM_WARN_ON_ONCE(folio_test_unevictable(folio)); > > lruvec_del_folio(lruvec, folio); > - folio_set_active(folio); > lruvec_add_folio(lruvec, folio); > trace_mm_lru_activate(folio); > > @@ -341,6 +354,11 @@ void folio_activate(struct folio *folio) > if (!folio_test_clear_lru(folio)) > return; > > + if (folio_test_unevictable(folio) || folio_test_active(folio)) { > + folio_set_lru(folio); > + return; > + } > + folio_set_active(folio); > lruvec = folio_lruvec_lock_irq(folio); > lru_activate(lruvec, folio); > unlock_page_lruvec_irq(lruvec); > -- > 2.43.0 > >