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 7B0E8C021BB for ; Mon, 24 Feb 2025 20:54:08 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 1605428000C; Mon, 24 Feb 2025 15:54:08 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 1102C28000A; Mon, 24 Feb 2025 15:54:08 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id EA41228000C; Mon, 24 Feb 2025 15:54:07 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id C9BD028000A for ; Mon, 24 Feb 2025 15:54:07 -0500 (EST) Received: from smtpin17.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 91425A054D for ; Mon, 24 Feb 2025 20:54:07 +0000 (UTC) X-FDA: 83156040534.17.3611088 Received: from NAM10-BN7-obe.outbound.protection.outlook.com (mail-bn7nam10on2041.outbound.protection.outlook.com [40.107.92.41]) by imf12.hostedemail.com (Postfix) with ESMTP id AE2BB4000D for ; Mon, 24 Feb 2025 20:54:04 +0000 (UTC) Authentication-Results: imf12.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b="i3el/lmX"; spf=pass (imf12.hostedemail.com: domain of ziy@nvidia.com designates 40.107.92.41 as permitted sender) smtp.mailfrom=ziy@nvidia.com; arc=pass ("microsoft.com:s=arcselector10001:i=1"); dmarc=pass (policy=reject) header.from=nvidia.com ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1740430444; 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:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=DBgDXppHFvblf16VOUB6Y5vJzUXX/uNP5zwrqd3oykA=; b=gh4xb/He/l33/kVL6IXui04CiqDippsEUsr0nhfvbdHsxiwRXSc/jJeOAIypP3ZeGng3L/ S/5F0d+JIDzz/tamGb6KEATQwV7SOz8L6664mg0hgUqq9Ha08g1K20cFW9Sptxp2GQcCYe ng3v4DuWkbE6yPFf8CmE8UBUqAStgPc= ARC-Authentication-Results: i=2; imf12.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b="i3el/lmX"; spf=pass (imf12.hostedemail.com: domain of ziy@nvidia.com designates 40.107.92.41 as permitted sender) smtp.mailfrom=ziy@nvidia.com; arc=pass ("microsoft.com:s=arcselector10001:i=1"); dmarc=pass (policy=reject) header.from=nvidia.com ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1740430444; a=rsa-sha256; cv=pass; b=T2I1o0uZ5n7wUnE/hATKZ/Qg9nb81a+EWpkto6b7WOhuZqtJZrMVEcsO6GDrqa0D15rLMB FoOhMPB8Jb4tf3++scK+0N38+suiUPT6VDt2eEvh2gpVUPaXkb4V8lctXJ/b79nlo43p16 fO0B5WgziliWkJROqYiFQeiS4vUDLHA= ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=r93aYHPPvGnmvtDb6rRZ2J0z+sGO9tRuhPymbHMKqn576RMy5ecR5p18wrbTKFra+BpYLTtCmCHSPNdonNJsa1BY1o8wENVboqYpKH1d7dUgYqwJIhi21EoPao28kAQSal20fYPjU+2LEegGaRGI8YA5vAmNvHm6TcRbePRgO+f7ex+uP4NmY80mV0sICvVQ0qZc5nIscI1XI1YKnDHrRwtbFl6aMXMoBPjJg+se3W/MXtCzcGgErgdS/MvGe6HHFyQVFSzla+zPN8npzv5qPvLp+kVTNQ+gPekfwSaqYktaJ6uw4yp9nJdoqjontT5ufnC//GqTR7dqOy3Nl/x37Q== 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=DBgDXppHFvblf16VOUB6Y5vJzUXX/uNP5zwrqd3oykA=; b=o6I5XUHNWneAuB7SjPREsgJZC47Jh1SZC7o9OuyZ/2ezBzEyZ8aobdvayIv8A8szEMRTlN5bOHBHfaOlGRYnUQH/tRW7PKnLDzEjNcL/qkQoDXDgoPTJOvts3H1Ojo6dbuxQGAnVZB+823m3ymVlgpANHagyEZ5rgwvkeC9nwqX2c/vA1wM5/S1oCxVMz2kJCLgYVTEr989PNjv0NDEhCVGew+pX1FNyMyBXNWnLLcbvodvU6eoDlLe/WV0UqBH2oEZJxQ65Q4SLHk9QZInyLsNv22Wjj6DoIHxuyIPVd807wsWeLwZqn2IDJZaqcKoYnNsof0N4BOd1v9sepkVKpA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=DBgDXppHFvblf16VOUB6Y5vJzUXX/uNP5zwrqd3oykA=; b=i3el/lmXBNsmIjzuD1rFjOPhJF0RUCPnmGEFcrQ9ANa5ay0OwHSJNYq5cqmfKqaaKvN6s1E0OTTDMdYI+TjiZ1TKPSEJRSXn+P1VJugxYC5mz6LclkL2Cxwn40BUveaWkqz2K04puOv54tNiKI9sugzTDeGyy9qgWB4GKtsJbzU1vPyXl1RRybf/JqNX9DgCjIyj7BW5T7DeKV3GxBa/FYBa/pYjw+TETqWLJCyQAi8oJng01gHiIG5ryfcEcaBZZKo6EkatiqC0HgBRz5M38kCntOWSjPshg00VF3pocIUhYkkBygHES/VxTTZ7IV2vwsYkjjRH6ovWgT+LrQZG3g== Received: from DS7PR12MB9473.namprd12.prod.outlook.com (2603:10b6:8:252::5) by CY5PR12MB6384.namprd12.prod.outlook.com (2603:10b6:930:3c::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8466.18; Mon, 24 Feb 2025 20:53:50 +0000 Received: from DS7PR12MB9473.namprd12.prod.outlook.com ([fe80::5189:ecec:d84a:133a]) by DS7PR12MB9473.namprd12.prod.outlook.com ([fe80::5189:ecec:d84a:133a%5]) with mapi id 15.20.8466.016; Mon, 24 Feb 2025 20:53:50 +0000 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=UTF-8 Date: Mon, 24 Feb 2025 15:53:48 -0500 Message-Id: Subject: Re: [PATCH v2 19/20] fs/proc/task_mmu: remove per-page mapcount dependency for smaps/smaps_rollup (CONFIG_NO_PAGE_MAPCOUNT) Cc: , , , , , "Andrew Morton" , "Matthew Wilcox (Oracle)" , "Tejun Heo" , "Zefan Li" , "Johannes Weiner" , =?utf-8?q?Michal_Koutn=C3=BD?= , "Jonathan Corbet" , "Andy Lutomirski" , "Thomas Gleixner" , "Ingo Molnar" , "Borislav Petkov" , "Dave Hansen" , "Muchun Song" , "Liam R. Howlett" , "Lorenzo Stoakes" , "Vlastimil Babka" , "Jann Horn" To: "David Hildenbrand" , From: "Zi Yan" X-Mailer: aerc 0.20.0 References: <20250224165603.1434404-1-david@redhat.com> <20250224165603.1434404-20-david@redhat.com> In-Reply-To: <20250224165603.1434404-20-david@redhat.com> X-ClientProxiedBy: MN2PR15CA0061.namprd15.prod.outlook.com (2603:10b6:208:237::30) To DS7PR12MB9473.namprd12.prod.outlook.com (2603:10b6:8:252::5) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS7PR12MB9473:EE_|CY5PR12MB6384:EE_ X-MS-Office365-Filtering-Correlation-Id: 34e369da-6e2c-4eef-e323-08dd55155771 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|376014|7416014|7053199007; X-Microsoft-Antispam-Message-Info: =?utf-8?B?cyt6ZGhOOEE1UCtoQW45N3BQWEs2QTN0RmdBM3BJUGNZbXlSVnRaUGtlcXpP?= =?utf-8?B?bjA5d08zc2crRTUwMTV4S1JzT2wrbjQyZ0g0dWNEK1Y0V1FzRzM3ZkhINjJX?= =?utf-8?B?WFVvcEh0eWVOdjZWVHVLYVdsRkI1d1FERDVEbmJoRFlNQlZ3aGZJL0xLaTIr?= =?utf-8?B?UUZJemJQSUR6K3JEdGs0eVM2TkFJem0waTJ0SVBGQTFGNkgvUjNBMEJKTFlD?= =?utf-8?B?a0srOG1QOXdXcXlpOHF5bUk4bTNBZy9RWmV1d2ViTHdGejJ2ZENiSVhEM205?= =?utf-8?B?ZklBSzVXNjJzQ0hVMmcvci9FS1ljWVJDYUxCRVNZVDBhUlcyUGpLcFN2c1Zk?= =?utf-8?B?aU9RdkpHNmJwc3FBaG1idWxGYmQyMTdUUWJpWTRoQ1ZGSFhmdlR1SlEvOGs0?= =?utf-8?B?WVpkdmVNNGRYaFY3aEJxWS85RE4wVGFuWVBUZU5lTmlaNWhiNFdrcmVOUzZ5?= =?utf-8?B?QzIzcHp4a1ZJYzN5d1h1aVJORHd3V1NBam5HRGJ6anA3b3ZGWUZ3VUVCaDdr?= =?utf-8?B?WlVMUlV1TnBqMDBybndabUhaTFlWY0REZFE5dDYrVVJHZEgvUWhsclBzRkw2?= =?utf-8?B?YS9SNUVrbks5U3M3dWozWTVtN01BTjNKY3poQjVPWEw1RHlQMkZzK0s2ZENx?= =?utf-8?B?SFlqbTFldjhVbWhCcjFDYm9Kd3pDVWNlK3owZ0IrYTNtQ1hsOUsrbytld081?= =?utf-8?B?a1o2Y0h2MWhQYzh2M2ZwSXlBZnBkcjhLenJuWFlNSDRIR2d2S0JMWUtpTGVz?= =?utf-8?B?eGkxQ09SQjVjdnI3NXNIRjZhSms4V1JGbkdseWgxMnZsN2RxN1c0MHRHSjFY?= =?utf-8?B?WkZYUUxEeCszaFpudllSTFlTU04zVTVJWXZEb3RKMGtpd0xTaGhGbmlubC9w?= =?utf-8?B?NC91eHQxMExEQk1USnZkMGUzam1jNXdQZkp5TzBMcXJPcmNRN0E4WjZXNnov?= =?utf-8?B?ZE5IRFQrb1FSaCsxS3JEaklYZnkzU2hxbmRrQWtPczhWTGtjZ2RRbE9JZURp?= =?utf-8?B?WGlhL3BUdGpyVFJEbzYrS2lsTHJJa1krbkpMamFQeFZqM3pDL2xEdzgxSHZQ?= =?utf-8?B?OGtOSnJRdTRpN3REOVZBcjBsZ09LeE1GV0plakFXY2FsMXV0SjFPWDh2RG9U?= =?utf-8?B?NkFodThDUUxJMGJYcWtYbWhjc2ptOGhDSzh1V0tJN3RBRVdUajh4VTVzZDJB?= =?utf-8?B?cE9MVzlVY2dWL1JDMWVlQVk0VHhxV0huOW0ybllicDkxcHExbGc4dzhjWnJI?= =?utf-8?B?SXlYMGVRKy9oelhaZ1NNTHY0RHc3WlhKNGlNUy9sMmhNc0M2R24yM1IxVDB4?= =?utf-8?B?SjYyNnBrUHNTL3QrUmJ5RjZia3ZEWmwvVGdKa3h2NVArRDlreHAxV1NHSHZt?= =?utf-8?B?L1RwVWZFeDdsWjE1TFU5cHhsR0ZrMnI1aVRNYnBWNm1lQ1VZSFc2QnZEUUZw?= =?utf-8?B?SStRODE4YzRYMGpMVFpUbTBFdS9FTWlRNkxWOE9uR1RsbGlXWERzb3VSeUVQ?= =?utf-8?B?TkIzQ0NJTEwxUm5NdGN2NHovZTY1RnBicUhTL1ZCRDZKUVJndGZzM0xUbUJs?= =?utf-8?B?V2tZRmVaeWtWajRFeHpUcXR1R1ZQSXREaUlZcTJCTlFzRldhTG9iUFQrUkR1?= =?utf-8?B?VmZraHh5ay9VYnZjRGRTY2NxK1JXa1lnQlE4MlZpSDY3ajlJTGsvSFYwY3lw?= =?utf-8?B?YzBTTjRrZXZTVDFSaXVnL2FYdmVXeDZ1Vk9IN1pid1VPUVNKYTA3bHNUMkpr?= =?utf-8?B?MXpQblllWnh4U09uR2R3MFkxSHV4TjhKZ3JuTTA1bWFweXdmWnpLKzVNMGYr?= =?utf-8?B?QmV5VTg1M1RFQnJkN0JyckRpMXJPN2tvMkJzekMxcnp3MWwwS1I4OE82MEQz?= =?utf-8?Q?TZJ+zcL00buYB?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR12MB9473.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(7416014)(7053199007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?LzhZTHhpK0xlVzBmQzNHTUxNU2xWc1ZoMEw4RDA2Z0VaY1ZDQllnSHJXcFps?= =?utf-8?B?MTI3K0FHaFlwZHRWRUFyZDRNVzBPc3hXSm1WbDVQeGh1UE9NTjRYZmVKN1Vl?= =?utf-8?B?aHZRZjFDOUE5KzlPUGRmWVpsMHFUU1lsZ0tEZ2tUbkNxY0d2UWhvQnNUMmVj?= =?utf-8?B?OWJTOFpjRHl2WXpsT1JNL0UyR25kSG5zU1VteWo1Tm0wZXcwTEVtVGNTdXpq?= =?utf-8?B?Wi90NDJ2Z2RzRWplZ3hwNWIwUURhSGFpN0owczZpTzdpTDF2czJMSUNWRXdy?= =?utf-8?B?TW1EK0tBU28za1Rnem9vQUVwZG03UkpNak5HMDl0TTZjNTFWYnhHai93WFBr?= =?utf-8?B?cUhQWCtVK2dZdFdRUndQYXZ6cEFSZkkzRkF1SWZ2NldjcUNvOGxtc2NTdnM2?= =?utf-8?B?NzI3NXVtZDF5Q2t3R0hNNGMrbHdIZ2lWZTRrMG9pUVJ6Tmo0UjZ4Z0xYQlo5?= =?utf-8?B?THp5cXBHdzVHMkJhWjBUOFNPdnpsdzVoT1lPWDRBSTRWRzhuay9mVlFsU2hC?= =?utf-8?B?eFRXbHBMaEtRNVJlR2hUWGhuc25iaUxUay9WUzVuWm8wdFpnQUlFUURqdW1W?= =?utf-8?B?VWRkV0NqNFkvQTErWUZUNXkycitoRjdhNjRjQWtORVVuMklVRWpMVXk4Q3d2?= =?utf-8?B?YUIxTjVTMms1eWJ0S24xYUVpWDlnWnpXdWZLbjJUN3N2WWM5akM4d0dkenph?= =?utf-8?B?TEU1UEN4aGJmREVZZWNPZ0ZsTFU2d2N1RktCTUVWalQ0WjVpRkxWV1ZRV09P?= =?utf-8?B?SHlQME1SYldSUE5RekVpdGpoUUd0ZVFhVG5YV3hYRkhMS2w0NG1nRkRTTnp3?= =?utf-8?B?TWxOQVpGWHN1MkhLT0RGMTFpTS90UjdaMTNKWFc1Mkt1Y2dQcENWQitXVVhn?= =?utf-8?B?Z2w0dmVMSU9SS1FSUjhUdWNFbElKOWg4a1M0R2plZTNGU1R0VHhTZjJHdUhM?= =?utf-8?B?dWtTbUhXd0dwSW41Qml4anU5bE9rR0RRUEF6RnlTSWRvazFMMHZaRzFaeGkw?= =?utf-8?B?dGRsb1BETmVKZTN1cGZvZjArT3dmOWxVQ0tidm1DR2tXbDVGWDZQSlBWNk9s?= =?utf-8?B?WmlHNTRYcW5NZHNpWExwZnVvMHo3VDB2UkNLeHhXN2JzaUdzY096WTFLV0Nq?= =?utf-8?B?K2RxL21XUUFLTmFKRmhjNGhGcUI2cEsxZmhJSWJYNTRiOEVBSDBGZWYwTkFm?= =?utf-8?B?WDczR1JlcHFJZG96MzdMUXhzQUFvMFNOTkhMM1JSUENWb0k2RHF0NVVZZVBl?= =?utf-8?B?N1dsU0trNkhzSGhHN3Q2ek5tcUpldnNJQTlOenM1Y0lJb0VUMjlQVkVBOUgv?= =?utf-8?B?V0REaHFBdTlqeCsyUmtlZ3R2TzZIYm00OVNxWU5NN2tCREdNQm9pMXhTdXRW?= =?utf-8?B?OEh6MUFrL3BXOVpDU2QvQ0pBSnpQaUpNekR4U3JGYVdEMWhmTmJMNnF1dUdt?= =?utf-8?B?Nkg2eHdzRTlFb1NCc29TOTFnNktMTHNHN29SRjk5UmY1MVNLYi9HZUpVb21n?= =?utf-8?B?R3R1elN4OWhFT3FtSitjaFRId25TQkNJeW0wZ2xmMGdncHZEWXZBcERQL245?= =?utf-8?B?VDlZS2t0QzJPMHV3ejkzVkQ0ZGp3VDZwVHhRODBKQzB1YUxma29jSG94U0tK?= =?utf-8?B?SnNEZmt5VHUxQU1KamJzajQrQUN2NGNCLzRuQlA0WWR2MmZWcTR4ZHlJblYy?= =?utf-8?B?Vk1BZ0o1RXI5aHMxMDBrQ25iQXNKWkpsNDdZSFl4QnJvQy9FOXNPYTZlNVp2?= =?utf-8?B?b1FtVGdKN0JUb29Hd0M4eXl4RHh1bzk1RTBaeHR3QjY4SmhjTEhTd3RIeGJQ?= =?utf-8?B?Y1o3RU5pdFpiWDVXOTRoZFozaVVoMGd2UmJmbitBdU9kNGxBWHJUbDNZWHpJ?= =?utf-8?B?UTRDNTFaWE5Td1hqRDBUREcrdHNpQXRsV3dDckpwMTVwYUQ3SHo3b1NtU0hM?= =?utf-8?B?VjBMN0NFZGRhNThNcjczR0FoZTRBaVNXYnN5NGdiUGtJZWRkU0VWU3JoWCtR?= =?utf-8?B?a3IyeDZKMm0rQjdPcW5BRS9VRFJ3MzF3ZXhnKzkxVWFJZm8vaGhFWXZQc2lx?= =?utf-8?B?TitSNmNqaHIrSzlsTTdQTkllL3RTUG5HaWxpZm1aTk9odElSY0laczBHV2Vi?= =?utf-8?Q?W9Qqela0Ti7hG3ibIM54dRSgD?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 34e369da-6e2c-4eef-e323-08dd55155771 X-MS-Exchange-CrossTenant-AuthSource: DS7PR12MB9473.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Feb 2025 20:53:50.7441 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 9GFR748p+Liz80aeilu/2vq+vTyWbmc+cpSQ5pnEEgdnKxv/7PW9Em1z4MBqxauh X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY5PR12MB6384 X-Rspam-User: X-Rspamd-Server: rspam09 X-Rspamd-Queue-Id: AE2BB4000D X-Stat-Signature: jiaszu1r1bheh67qcymkz618w7xdesad X-HE-Tag: 1740430444-272357 X-HE-Meta: U2FsdGVkX1/iFOr9tcqD19ABHRD8+IwbUDtjmX/OoHkG3MOZkle2MPRrkyJPAPSbmyzaarnox+Tt8TwxeSvDpBCGU0jxKt7gk2SWzuF0QplOOpTOvlKW7V+XwEiruAm8+YWcFNR0dvE/acxe6KBo1y4YPmtwJOg8umpIgV9xAKDfAFQlinKhR49HoD+7Gsho2xPMj2Qjx4UgtUcsM52WGAQ1PpwkeTXQwzBrN56OsXI4kx/ExAj4YlyI0w0L5q5P7HG553rV6ZOw/cX9nH3E+lhY9iMh0mmH+2Q1TjaIfXrz79qZqcy5evvf4b1cIqwDYkU2iY/ePAXRJyRs6KGDGw2Fc2LFJfOgOlHG89xYgll2T//dzBzif2G7wdq0ardSHkka2WW3geFNd7pDGwORWVkDN5fbxwMf1DcfW07plKSy1lRLEwyhLgg80ipbEf98KX5Dt4Xsv/KiI2wCh4ZTkhtBr1vj2eEEz0RJZmr5CXrp24DBswOlj9J5DB88wC6h2SqrSbsUMXe8CMJeP/dcYBtk8wm77drsc5E3vrtO6OIng3X+UOdq3aFbA2kAuYoTkq7ECgFF3Ppd2D0zsWjeIL2txb1ho/dSYaQwID+dHekc2plT2t3XOodpe7WvBqWWXmzA3CubrKdFMQS0iAdcIeLTRgiSBreEXx2YwJgxEiKgwPk0KTukYWhAdt7jxq6NJhGhz8kY3dU6BSJpgNpaX+ioIMeWu9PAI6kIhvneeQwbqmzIJUJJ+lwS/zmgdWPNQogXmfdltJ3h7LLhVud+3EqFPMfO+CtxBSNObz3TcTUy/IJAkeN6dqwfm6i3B02zqPy+u7D/5ITFDamRBZpfGgCHNAqleIcNQUmoztbkgLZ5XsPt3seF4R9TD6HE4HPO4tfmT4Ad5bUkluJ6Lly7pakfOAq4HfjmtanusNk2MSlZDcszkP17EwOxLB7k04UkaAKUv3HPRbtNP5TJMMm f0SwaLaw AUDTUBMH1aZIRv/KlDDxT2dbhwtxFUXVxj08rmJf4YBsp0tIfa18tYJan+YWArJXVtc4T5OkKcN3E9g0S04rphST179vTkwBgI6E4aL9rcJ6w2eGwSGIJF5rZmcmjEBhoIomYSWd8karRaPIProcPJaXQ+moxMvyj3dJUX8Kllcou2k4Gf6+67Qco2aw4/gueBETUHqebKYbwieGdtff2heTFlYoQdGH/rDiH8zi7sShBYgIwdt/D4dVOrYCDKtYt/CLTmrNSb0mWytRkmj4yean1BFLf5UWJvsgYCbHqoyVfBbJ+dg7yPui9+jvJ584XOzMDvzoyENOTX1NfO3JkyH0mRxT7dH6Hdm9ldO85b8ybA4ZEPzeC2khFuYylbpw8IbWQAAOcamIpHflI1v++a6gd6A== 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: On Mon Feb 24, 2025 at 11:56 AM EST, David Hildenbrand wrote: > Let's implement an alternative when per-page mapcounts in large folios ar= e > no longer maintained -- soon with CONFIG_NO_PAGE_MAPCOUNT. > > When computing the output for smaps / smaps_rollups, in particular when > calculating the USS (Unique Set Size) and the PSS (Proportional Set Size)= , > we still rely on per-page mapcounts. > > To determine private vs. shared, we'll use folio_likely_mapped_shared(), > similar to how we handle PM_MMAP_EXCLUSIVE. Similarly, we might now > under-estimate the USS and count pages towards "shared" that are > actually "private" ("exclusively mapped"). > > When calculating the PSS, we'll now also use the average per-page > mapcount for large folios: this can result in both, an over-estimation > and an under-estimation of the PSS. The difference is not expected to > matter much in practice, but we'll have to learn as we go. > > We can now provide folio_precise_page_mapcount() only with > CONFIG_PAGE_MAPCOUNT, and remove one of the last users of per-page > mapcounts when CONFIG_NO_PAGE_MAPCOUNT is enabled. > > Document the new behavior. > > Signed-off-by: David Hildenbrand > --- > Documentation/filesystems/proc.rst | 13 +++++++++++++ > fs/proc/internal.h | 8 ++++++++ > fs/proc/task_mmu.c | 17 +++++++++++++++-- > 3 files changed, 36 insertions(+), 2 deletions(-) > > diff --git a/Documentation/filesystems/proc.rst b/Documentation/filesyste= ms/proc.rst > index 1aa190017f796..57d55274a1f42 100644 > --- a/Documentation/filesystems/proc.rst > +++ b/Documentation/filesystems/proc.rst > @@ -506,6 +506,19 @@ Note that even a page which is part of a MAP_SHARED = mapping, but has only > a single pte mapped, i.e. is currently used by only one process, is acc= ounted > as private and not as shared. > =20 > +Note that in some kernel configurations, all pages part of a larger allo= cation > +(e.g., THP) might be considered "shared" if the large allocation is > +considered "shared": if not all pages are exclusive to the same process. > +Further, some kernel configurations might consider larger allocations "s= hared", > +if they were at one point considered "shared", even if they would now be > +considered "exclusive". > + > +Some kernel configurations do not track the precise number of times a pa= ge part > +of a larger allocation is mapped. In this case, when calculating the PSS= , the > +average number of mappings per page in this larger allocation might be u= sed > +as an approximation for the number of mappings of a page. The PSS calcul= ation > +will be imprecise in this case. > + > "Referenced" indicates the amount of memory currently marked as referenc= ed or > accessed. > =20 > diff --git a/fs/proc/internal.h b/fs/proc/internal.h > index 16aa1fd260771..70205425a2daa 100644 > --- a/fs/proc/internal.h > +++ b/fs/proc/internal.h > @@ -143,6 +143,7 @@ unsigned name_to_int(const struct qstr *qstr); > /* Worst case buffer size needed for holding an integer. */ > #define PROC_NUMBUF 13 > =20 > +#ifdef CONFIG_PAGE_MAPCOUNT > /** > * folio_precise_page_mapcount() - Number of mappings of this folio page= . > * @folio: The folio. > @@ -173,6 +174,13 @@ static inline int folio_precise_page_mapcount(struct= folio *folio, > =20 > return mapcount; > } > +#else /* !CONFIG_PAGE_MAPCOUNT */ > +static inline int folio_precise_page_mapcount(struct folio *folio, > + struct page *page) > +{ > + BUILD_BUG(); > +} > +#endif /* CONFIG_PAGE_MAPCOUNT */ > =20 > /** > * folio_average_page_mapcount() - Average number of mappings per page i= n this > diff --git a/fs/proc/task_mmu.c b/fs/proc/task_mmu.c > index d7ee842367f0f..7ca0bc3bf417d 100644 > --- a/fs/proc/task_mmu.c > +++ b/fs/proc/task_mmu.c > @@ -707,6 +707,8 @@ static void smaps_account(struct mem_size_stats *mss,= struct page *page, > struct folio *folio =3D page_folio(page); > int i, nr =3D compound ? compound_nr(page) : 1; > unsigned long size =3D nr * PAGE_SIZE; > + bool exclusive; > + int mapcount; > =20 > /* > * First accumulate quantities that depend only on |size| and the type > @@ -747,18 +749,29 @@ static void smaps_account(struct mem_size_stats *ms= s, struct page *page, > dirty, locked, present); > return; > } > + > + if (IS_ENABLED(CONFIG_NO_PAGE_MAPCOUNT)) { > + mapcount =3D folio_average_page_mapcount(folio); This seems inconsistent with how folio_average_page_mapcount() is used in patch 16 and 18. > + exclusive =3D !folio_maybe_mapped_shared(folio); > + } > + > /* > * We obtain a snapshot of the mapcount. Without holding the folio lock > * this snapshot can be slightly wrong as we cannot always read the > * mapcount atomically. > */ > for (i =3D 0; i < nr; i++, page++) { > - int mapcount =3D folio_precise_page_mapcount(folio, page); > unsigned long pss =3D PAGE_SIZE << PSS_SHIFT; > + > + if (IS_ENABLED(CONFIG_PAGE_MAPCOUNT)) { > + mapcount =3D folio_precise_page_mapcount(folio, page); > + exclusive =3D mapcount < 2; > + } > + > if (mapcount >=3D 2) > pss /=3D mapcount; > smaps_page_accumulate(mss, folio, PAGE_SIZE, pss, > - dirty, locked, mapcount < 2); > + dirty, locked, exclusive); > } > } > =20 --=20 Best Regards, Yan, Zi