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 47F29C7115C for ; Wed, 25 Jun 2025 11:20:43 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id DEC1B6B00CE; Wed, 25 Jun 2025 07:20:42 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id D9BD56B00CF; Wed, 25 Jun 2025 07:20:42 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C15826B00D0; Wed, 25 Jun 2025 07:20:42 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id AB2F66B00CE for ; Wed, 25 Jun 2025 07:20:42 -0400 (EDT) Received: from smtpin29.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 8361CC019A for ; Wed, 25 Jun 2025 11:20:42 +0000 (UTC) X-FDA: 83593680324.29.3F28147 Received: from DU2PR03CU002.outbound.protection.outlook.com (mail-northeuropeazon11011023.outbound.protection.outlook.com [52.101.65.23]) by imf11.hostedemail.com (Postfix) with ESMTP id BE54A40018 for ; Wed, 25 Jun 2025 11:20:38 +0000 (UTC) Authentication-Results: imf11.hostedemail.com; dkim=pass header.d=arm.com header.s=selector1 header.b="k1Y2uYC/"; dkim=pass header.d=arm.com header.s=selector1 header.b="k1Y2uYC/"; dmarc=pass (policy=none) header.from=arm.com; arc=pass ("microsoft.com:s=arcselector10001:i=2"); spf=pass (imf11.hostedemail.com: domain of Dev.Jain@arm.com designates 52.101.65.23 as permitted sender) smtp.mailfrom=Dev.Jain@arm.com ARC-Seal: i=3; s=arc-20220608; d=hostedemail.com; t=1750850439; a=rsa-sha256; cv=pass; b=OT5ZswWhsqydJDNKqPtUfmLOS6C2qyUGqj8/2E1MVb3f9Nj9+t3CpgPmeG4FJyFECZDfu5 atKjxbArX4rf6ZFLshZa80s5uiV6weHlCJEGmMk3kkQ4zZ3IJFFUKYKFW6dHrz8aovxSiX RgxwzE1tSSCy0zWE1GgRRTKQ/HNRZYI= ARC-Authentication-Results: i=3; imf11.hostedemail.com; dkim=pass header.d=arm.com header.s=selector1 header.b="k1Y2uYC/"; dkim=pass header.d=arm.com header.s=selector1 header.b="k1Y2uYC/"; dmarc=pass (policy=none) header.from=arm.com; arc=pass ("microsoft.com:s=arcselector10001:i=2"); spf=pass (imf11.hostedemail.com: domain of Dev.Jain@arm.com designates 52.101.65.23 as permitted sender) smtp.mailfrom=Dev.Jain@arm.com ARC-Message-Signature: i=3; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1750850439; 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=aObWi4CYewjQSoqPBeHsj8EaezBaF1jNv1o5EOw6OJQ=; b=VijF8tWR9yH/9XyUTF4IZh5dA62roQUym6QsMXc5PvC/AkKiJwfSzuNPwv+n015c0Sa4Wx x6fVS6IYIxRrPppUfFp5ehZpOT2flFz+6adr21TJImdPnVzAA4xfELmkMZ3vyOEJ4vroVl xOOvPhHfFjov1CNS5cTveEiCscFp4CA= ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass; b=lviJ6aXiZq9X7E0FOhkaXC+64FdAROy/XweDTay8Xz9uoGe9qKSaDBkso/80hEXJsSO7SldIsrdJ5znsJLY1mmteoNBjqrIwxsf5e77ZaItL9yp8c6TrYfW7GOLBuNLh9ocwk6pF1XNj53olu+MD5GX/ElYBKmfTQ0O7I1gsa+cZ1S/bLIu9iAmHfSi1Z3jxXAZjAZ71hLQ9OszdB9Mf/aaH9fdzQ9IiNYt0+cVuQ6V/IwgZaFhnlLgWOD2O0seasxUpgC+N2vDeQo5NbzZDCuf1uDFZT0dTiuFBz6N7SdlNNDnn+vwNfG/rT1D9zZZYIvoQ5KeJez1ZWnLN3nBnXw== ARC-Message-Signature: i=2; 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=aObWi4CYewjQSoqPBeHsj8EaezBaF1jNv1o5EOw6OJQ=; b=R9C0LrpvChzFkKreZ10hSKVb+jYihbSmgz+4WpBUfnjXGS+oTgyodqBfhFD8mkBCWj9JjGufAjFK0SEbFATJuLijf6yha0wfQPnl+HBS8+VimPBtK4Rcitt2IN8epJ5BpdXwwrDTj7f4+/ynSsqGhVz8pdQvQaKhso4707bdTAqQNppZnKWbeYU6tHS1IxgfFpZzLzjhVw8PZPLF1RkyRb0SE2W4GQtSDD3rtoiQCS4jjwbj3rZIR2EKHvfO8iAlIr6pEPmuwXeqlxhMNIWn8oQsKFMy719DEVD9VBj3rp3+0fRAYn/1+3oW4LlcMdYkhYE9gKGv4qyBNIGslIpV3w== ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is 4.158.2.129) smtp.rcpttodomain=redhat.com smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com] dmarc=[1,1,header.from=arm.com]) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=aObWi4CYewjQSoqPBeHsj8EaezBaF1jNv1o5EOw6OJQ=; b=k1Y2uYC/yLt00rPzsG62r1hFvgD6w3wsNiRLnFOaBUhcZQyFaIESQLzpxgMTChZpkhuiIW8rgTV3BYXRSTdfGwDpvohbos1nJqDCW5TYuVqER7jsCXBWsorFSQLG0f6hG2B+8Llst1wDdS12SKkpPocDCNyDcM04JYGUl8BBonc= Received: from AS4P195CA0023.EURP195.PROD.OUTLOOK.COM (2603:10a6:20b:5d6::14) by GVXPR08MB7799.eurprd08.prod.outlook.com (2603:10a6:150:3::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8857.23; Wed, 25 Jun 2025 11:20:28 +0000 Received: from AMS1EPF00000040.eurprd04.prod.outlook.com (2603:10a6:20b:5d6:cafe::13) by AS4P195CA0023.outlook.office365.com (2603:10a6:20b:5d6::14) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8880.17 via Frontend Transport; Wed, 25 Jun 2025 11:20:28 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129) smtp.mailfrom=arm.com; dkim=pass (signature was verified) header.d=arm.com;dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 4.158.2.129 as permitted sender) receiver=protection.outlook.com; client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by AMS1EPF00000040.mail.protection.outlook.com (10.167.16.37) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8880.14 via Frontend Transport; Wed, 25 Jun 2025 11:20:26 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=arclbjrhouir7kMXPzpb9Ctx4daQRkI+vQe358gT8LXzBTUMZQyAkw6mLTgg4/+J+Zn31BglT/3/1E/f2RHED/f+1zRptXHiUza9U5q4Qb6RtEr/LDon87aTeO2fcvqCnZFTdjC/TvLeuhSLLmq7a/9mxXXrleltenYxt0NiE/di1F+sps2YBpV9V12yH+OpgCi2BZfCr7TWSe/nmKv6u4RRCj/U4PbefPO7a0RkZwUYVtxwNTyyqgxEPIyBdRtQHQTgnpQWzrFXoeReZlHWx/Su7eS3siAgzXFXalymX3Yj4di+ne3JKbo6q4ONMvlN096wO02bNWViLG5HvFSV3g== 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=aObWi4CYewjQSoqPBeHsj8EaezBaF1jNv1o5EOw6OJQ=; b=EH6KDeIj2DPIzuTHu19//AvfUCikmZ4rXt6P/Hcz1FpGV5Wo9zFwKR1ewnL2VxCqd1gRZ5mUlPW5lO5pNr10ELUMw7uEZ4aZkpdQInkEbIHjLLZi64BHOXOeQ+ax6wGSEAcuH5avSMNqAdys/o7MkWmfwbYtOvu3tBFX/2bel4ZZAEC/OpK2w9xfHjZPwDkbE+s7/DSXKjMshFlbAT+nOdZg2LLSMIIsAPa3W11d6P6Rg2s3LLQB8HE5H7KXZ6BTHWZU7QBDlwhoCVnUjppQITfLI2m4KUk2Zvnxb9NYNQTarhL2V0eImon6TivAuvQ+yztQNSGgjckVILhS3jlHvg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=aObWi4CYewjQSoqPBeHsj8EaezBaF1jNv1o5EOw6OJQ=; b=k1Y2uYC/yLt00rPzsG62r1hFvgD6w3wsNiRLnFOaBUhcZQyFaIESQLzpxgMTChZpkhuiIW8rgTV3BYXRSTdfGwDpvohbos1nJqDCW5TYuVqER7jsCXBWsorFSQLG0f6hG2B+8Llst1wDdS12SKkpPocDCNyDcM04JYGUl8BBonc= Authentication-Results-Original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; Received: from DB9PR08MB7114.eurprd08.prod.outlook.com (2603:10a6:10:2c7::19) by DBAPR08MB5717.eurprd08.prod.outlook.com (2603:10a6:10:1ae::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8857.29; Wed, 25 Jun 2025 11:19:54 +0000 Received: from DB9PR08MB7114.eurprd08.prod.outlook.com ([fe80::515:9f73:5a61:fddb]) by DB9PR08MB7114.eurprd08.prod.outlook.com ([fe80::515:9f73:5a61:fddb%7]) with mapi id 15.20.8857.026; Wed, 25 Jun 2025 11:19:54 +0000 Message-ID: Date: Wed, 25 Jun 2025 16:49:47 +0530 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH 1/3] khugepaged: Optimize __collapse_huge_page_copy_succeeded() by PTE batching To: David Hildenbrand , akpm@linux-foundation.org Cc: ziy@nvidia.com, baolin.wang@linux.alibaba.com, lorenzo.stoakes@oracle.com, Liam.Howlett@oracle.com, npache@redhat.com, ryan.roberts@arm.com, baohua@kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org References: <20250625055806.82645-1-dev.jain@arm.com> <20250625055806.82645-2-dev.jain@arm.com> <426ec9bd-3109-4927-a96e-367e882c7067@redhat.com> Content-Language: en-US From: Dev Jain In-Reply-To: <426ec9bd-3109-4927-a96e-367e882c7067@redhat.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-ClientProxiedBy: MA0PR01CA0087.INDPRD01.PROD.OUTLOOK.COM (2603:1096:a01:ae::17) To AM9PR08MB7120.eurprd08.prod.outlook.com (2603:10a6:20b:3dc::22) MIME-Version: 1.0 X-MS-TrafficTypeDiagnostic: DB9PR08MB7114:EE_|DBAPR08MB5717:EE_|AMS1EPF00000040:EE_|GVXPR08MB7799:EE_ X-MS-Office365-Filtering-Correlation-Id: 47271c29-dd49-4def-8d50-08ddb3da4931 x-checkrecipientrouted: true NoDisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0;ARA:13230040|1800799024|366016|376014|7416014; X-Microsoft-Antispam-Message-Info-Original: =?utf-8?B?YURIbUtVWWdFTkQ3ZGtpaHBPMnFLVitmRXVFSlFSUHFMejc3a3FVaHBpbSs1?= =?utf-8?B?UFlPNS9RYlI2NVE0cThBaEZDZEdaZktoaWJPbVVzRVBjOWwrY09RNGZtTjJi?= =?utf-8?B?dXJJNG1OUEZBcFZYd2M5VjFWQnN3NEdqTm5RU3oxSE83cjRMWlQ4SzFRSllq?= =?utf-8?B?M1dOTW9kWGp2dE1NN3FMcWlBYjZsMTBnMTkyRkk5TjZZdWJEV2tkZTFBNDNq?= =?utf-8?B?UmRraXR2b2p0UVA4WmRyTnJ4anlpemZwYVNYbmx4Z0IycVBSeUVUZTRqZG5r?= =?utf-8?B?NU1lK2pXQ2xSUmJwOGk0S0Y3bS9GS2dVQk10SjU3T3NLdndza1EvYlBLUFZh?= =?utf-8?B?eU5PNnV6OURWQ25PaVZiWEprTnpJbTdtdjhZYU9IVkI1YVdQR21WT0NlWGJH?= =?utf-8?B?WEJUNTM2ejZJWXdOVkcySEkwRG9jMnFXeHdPY1BpcVNGNHJMR0c5V0hsWmF1?= =?utf-8?B?T2gzbTBQd0orNHozMXl6NmxKQUZzRG1GUllvdmcrSGsrMjdmVml5UWcxU1hz?= =?utf-8?B?Y0lXVjN6NkF0VGFvNXR6SWFCeGhoYUtKOWZET1JjSFBTQ3FFSFlRLzVKOEVX?= =?utf-8?B?Q2FuaTlJWWNQT0tRVFZoem1tVllOVUZ3VThDQjFxK1FOVzYweXZ3Qmh3bDFu?= =?utf-8?B?UldFNS9NL3FZNi9ZN3lxMngvTS9qM1NEV1JsVk5iUXkvNkJYbGFXeHVYL0pj?= =?utf-8?B?d0gxNGdjN29ud21LVTBrcUFQWEVXUW1JM3Z0bFFuNFNnVW9WTUpQOWVMOHFi?= =?utf-8?B?TVV3NWpXT0FYTnVxSDVucXk5NXVFbE5nWU80U0g2L1lKTVA5aFdQSHVoR0Zu?= =?utf-8?B?UkNsZm5QSzVDQXg1Y3N5d1NiNWk4MnFBcGxOYWYwaEJnQkZqYXNSOGhoRWpP?= =?utf-8?B?WVZISGx3Wk9iYThJTG1LVjBlYmIyUXJwSXJlNmk3MEgvNXdLZlRrVG5Xcm9q?= =?utf-8?B?TGNZcVkzUTlaK3NrY2h0bSs5MlMveU1xM0R5aWg1UHNpR255ZEVaK3VxUzRE?= =?utf-8?B?Ykttc3V2bDBCa2JzTzBIYWRac0taNm5tbCtuNDd2aUxSODEyRDVWZzU1Qk9p?= =?utf-8?B?T0N4K2cyTHQrK204WFVEeU10cHpNOXhsYlFpUjFrS3Y4WkVscmhMVm5sc3Ra?= =?utf-8?B?aklFRkJSWTJ6SVBYMnNMb29GOTEveTVCa1lVenFVSUdBS1VKQmRLQ3Rub1dN?= =?utf-8?B?L0oyQVpxVE1FdUkzaHFLWTVGYVdXTzlpU1lIV1EvdnV6QUpxbkZkM1Jrckhu?= =?utf-8?B?ZGxGT1Z4bmhzZkY5aENlZm1nQzJBby9ZeG1DekhPcHp1anNCZXVLVnIrL3NR?= =?utf-8?B?RXgwb0RYUnBaNlZBRkJ2Ti9pQVJhNlVJUEtId3F5RWFCMnpXSzVpNkdkTnVP?= =?utf-8?B?aXIyZUpoQ0dLK3JqWGUraU1sOGRKYVhqckhNM2RuTWV6eCtBcFBqVXBvbDMx?= =?utf-8?B?MFZsSEhMVDRoOHEzK0xmaG1zcnAwd2JEWnIwWUlMSUdEb0hZQUxCWVhOK2dP?= =?utf-8?B?bEFwRWtacDZLTThMQmhqWnZXTHc4VVZldmlBa2poMG13alFwZ0kzLy9TVWk0?= =?utf-8?B?NThzN3gwOUY5dTkvNGh6cDlkdXhadWVCYVFlMmIvVlp0dHdPemkvTnEySi9K?= =?utf-8?B?NkFZYjBtL1drZFFQZ2lzZFcydkhQVnVJT1VoTDR3U1BRanQ3V2dOeEVDeDRU?= =?utf-8?B?ODF2K2Mvd0VuYXlISmdGMCtZOFpHanhPUEwwL0F0cm1xUythK08xQjUrajFC?= =?utf-8?B?dHVpSm5tWVlESVR2eWtrWWoya2dkT3NGRi8zaFlSc0xORzBjVEZIY2xYdk1T?= =?utf-8?B?RVl5VHkxWFBBbjFMNFJReGlaTU8yaGF3anRIdVhHU1F5K3VqL0RCcXhOTkFm?= =?utf-8?B?ZGpRWHVjdXdSaFpOZFRZZ2NnNkhLUUZ3NlRCclhIT1oxdTBtOVlHcXFmMjQv?= =?utf-8?Q?Us/49gUdo94=3D?= X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB9PR08MB7114.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(7416014);DIR:OUT;SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBAPR08MB5717 X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: AMS1EPF00000040.eurprd04.prod.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 8413b96b-546a-4db7-9b70-08ddb3da3534 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|1800799024|7416014|36860700013|14060799003|376014|35042699022; X-Microsoft-Antispam-Message-Info: =?utf-8?B?eXBjRnNxQmw1SGJkZmxEYjJMMkpDbmZ0YlkzTnhpTkdwbUE3VkpDZ21xOFBO?= =?utf-8?B?UFNuaStJSmd1RGZxTURZcjBYQzJZRWZxQlZrT0s5c0J6RWhHeHJiVU0vdmlk?= =?utf-8?B?Rm4rS2dReVhGZXZvcjRGUnY5ZG9Qc0diQTQwdVNqVmVTTVI2Vmw1WFZCMG16?= =?utf-8?B?OUZ5RnN6QktQL0JTOXVrT0FyNjIvUGZhTkZ6YmlaNDBoS0FNMlZWWlN5Q0VL?= =?utf-8?B?UTNUelZiZGdRTWZXOGNqTDFROW82U3dseER5ZnJUZVlOSXk1TnNuNGNaY2Mw?= =?utf-8?B?ekQ5Yitkb0RzZkZsNW9PcWRZc3dIYitMNU10NVBmNXMxVUwwbTBNNHpUMUwv?= =?utf-8?B?bjhpVTU2eE9KNkFGUnd4c1FhbnFkRk9Sc25zOXdKZHp3TkkwckZoc3p1Ulhp?= =?utf-8?B?aEgzNlY2UGhNcXNCTUo0c2lRYjQxYU5sNzNFMUZqWHcxM0ZUMldBa0RYZ0xR?= =?utf-8?B?d09jQW1JWUNMWlV1TG4xeVVqaExyaEFvck5ueGZtSFlsWDlIaE1sdkxqOGJR?= =?utf-8?B?N3E0T1l5VEVobzhxNEo4Y29lYXVDYktLS0gzd2MzWEV1Y3lPajE2ZG9qR09X?= =?utf-8?B?NGNkMTJ2RytqSzdjcVZ6cmxpdnRqZ1lTOXFjM3RkcG80aVpKMjNSS2lmMUFz?= =?utf-8?B?OWh5U1JTcVptd1daQlFWdXZiWFo1L2JhVTlqRm42Y05ZSkFYSi9JWHdBdGhv?= =?utf-8?B?MVc3eDBOOWR5ZlBDV3owVEhOYmlObVZ6MGhFTStUalpHWldPVnpTa25ObjhY?= =?utf-8?B?V1R5amR3RDJvVFl6aFZMcjNiZldVeEUwWDVEelNaQzRRSTlFZG9vYnhzRHRV?= =?utf-8?B?RkdTcTI5OFVHeGRKTERVSnVoTW02bkhzQVdWNkNZTnVqKzNjYVdKRUtseS9V?= =?utf-8?B?VUt5bE1pUGNmQlA1Q2J6N0FBL3VleTN4TldwcktSUVZQMWZLaE5iUzE5SHov?= =?utf-8?B?ZkN2QjMzczJJTkxxeGZNbTdSaUo1NGlJTWFYeWxFU01EdER2aW52V0VQdG05?= =?utf-8?B?ZXZoL1ZselkrYkp5SkZ2SzMwVXdXbExtcjZvWWVwTitra3p6UXFSc3lRRytQ?= =?utf-8?B?MCtzVlZXTGNDMU93ODJBci9RSVhLLy9yWVp5TlFqSWtSSzBnNWlPUWpnSUZw?= =?utf-8?B?Wkg2ci9VM3dEc3lUd25RSGx5RnU4MXp0Q1BWTDllMTYyVWhLZzBCMUNFak1z?= =?utf-8?B?M3lGN3R5VWtseHRqQy92REFDTDBnQkRZQS9FV0prd2pteXlRTnJJOVltbFh2?= =?utf-8?B?V2Zyb3NlR3BvVW9vb1hiT2h0MjdkeU1td1Q1Z3RWUnlDVndUOHhEaktIQm1s?= =?utf-8?B?bm1rRTYrRCtsdDdwWDFlNEM0RUtVZ3pYNWJRTDJSd2JYc0RKZ2JxZ2NvM0NR?= =?utf-8?B?UWdXSDVjaUpUVEF6a3h5bUVpbHpjaktONVJVaFFzWXFJUWJKRE1OdjVzU0Fp?= =?utf-8?B?amR2Ti9ScGFNZ3hMQzJMaVJqRVJLLzVuOU5pV21oZzdWQVBqWUphYjF4L3lI?= =?utf-8?B?b3N6NGc4SVc0NitiV3dzaEZ5bmtka3FOb2ZLN3FrT3lKRTROYTB1TjN6YlEr?= =?utf-8?B?cHJXQTAxNmp0Rm1XZW9qS0FBNDhTZVNkQ3V3eFhVZjRPTmx2Zk1yV3JzRWEv?= =?utf-8?B?U3Fuc2ZFVVAzd25laXdhVU02bVhhYjFXeDFJSVZIUHhaRHBuMnplN2tXL1hO?= =?utf-8?B?WFNJaW9VNGFrUDREdE9SMWVTWWY5clVwNlVuYWJLaFh2NmR6L2N6aUIzM3FW?= =?utf-8?B?NGlVaUVIb0NFclltdHBqSWNOMzVWeU1XQWNTOGc1dlNNT3c4VS90ZmR2VjlP?= =?utf-8?B?c0MvczZuV2JiMGYzVVZVdGFMS2ZDNW9YS2p2MGdTaTRnSjc2SjBQSm1FbnRF?= =?utf-8?B?S2tkS210MndmbWdWK0YxQi9LMlVCT1piaE5OU0E1NVFNdHdtcFBhMmZoZWpE?= =?utf-8?B?YU5BSFd6QlNXbDYvVys2ZkhZdU5pQjNTekd0ZUE2Y3p1RFVvb0FyZVZTeDVO?= =?utf-8?B?ZUhld0RmWEVjeE5mTVZodHc0RlBTckdpVXZET2g2cXowaFhVRUQycXYxVDBG?= =?utf-8?Q?6RUKyh?= X-Forefront-Antispam-Report: CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(7416014)(36860700013)(14060799003)(376014)(35042699022);DIR:OUT;SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Jun 2025 11:20:26.7635 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 47271c29-dd49-4def-8d50-08ddb3da4931 X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com] X-MS-Exchange-CrossTenant-AuthSource: AMS1EPF00000040.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVXPR08MB7799 X-Rspam-User: X-Rspamd-Queue-Id: BE54A40018 X-Rspamd-Server: rspam10 X-Stat-Signature: ddqe6gi9cqszog1oop1jh4ehcffiewjy X-HE-Tag: 1750850438-413922 X-HE-Meta: U2FsdGVkX18PUYOhjeSjURd6FaBlsvYZbc6f5uf5B90AzClrofpJy1obYSw9HTzqF0T8l34/+t798S4BVwSTGovREjGE6fO576Sq1KFkzP93UOky24ZIkeJ65K/stIzOcBjKMUEUmeTihwdUDfNsi88JYdD+re8Dqp3CtR1E4vSVQboCYric3qopYbcFLjZ4E0IT2sjmHfaUKZXS8vmIjdXOARaUaZs7BrsStBBpUIQhIxUH1Lqqa8vs3JdUWc1T7c2TCfrLXYeC4lADeBrBC/wY5boI3cgaJl4tgxt3bPIorvS2myrGLcvTkdUOj1fLL4Rcrr890qg4BKbQfKnRMkAyAwt+SrM9EYZSdg1SjpK1XhbzP7R3n4Pf3igQ3s5/qpecqzE3R4jMlbXJ386oJKZoxdy6VYny0nhz2mfuJWwpdcR0x04JNfAawlH0DJ55Tj3cxq0XUWoVW81v8IixDT48Ol/AKIkDlxtVm5u3+hn/zJyo7W4WVJqyRFpuqDOFhBlheQRLEfu/TwHzdkVel8+XX0uzvHQ6upE6FPI9+1Q9gIRW9R0sQJWccgOzyjm5mY3QkyoALw2m32U/FOBpCo9O/6Lb2mTZ4dLDvznOHPheomgQPHZ4iwMnKU0FKDaXQCEk94GSzZJ6oq9iIETY+WiTr4MAu61VOfXaH7RjdjvahsLCOKlHkXp59gpQF5FfTv/diGPmEaEDDwaK9wJ07b43DCVfnSHXq2kArtoERXad12G+Cci/XIavlIbunmhOUP8X7hsfCGHtVE0xi3wkGYfDaGowi7nD4R+LgRNyO8xScqTbD7A/D5gV1NZnzUO9fUsHIEm+5+iRpdHeknWIOgautxLYnMVU+/bGxDG/jucP0sHFoiKoZHe5T8zp1FwwwQXZqwZ1NWAen+7RrTzLMuikBu9lrn5dsrA/xDlrbqaVjAxKiYZSqPFuU/tskDYfO/aWVo1Nmi5PRI4FpXR 6iRHb3n7 KNdaqAYvWsX14z41hOmOl+ID+UiG4ImDKX9ECAEc2qMqLtNhwA1bHX+87rKtlhVa+6QeVy7uFbj7sUGXzPJgXvAVDVLDV3+pVC9ADihfewVVgH2MptGwl+RnJeBnk9zW8qUcZau4sJxEC1/byNlTSCCTtGpVXFWm6u/ycePrni/ZQrDST9i03Rms9yx2r6NXVp9rvioSigAO+x17E4qzfhfqHywXwDOpMDBWpeRI7v5DXjv1h+XWx6YsxPUxsQsUYx05MPCyuSElnFmtCemkw4DDlaeLDXNdhPsv0L1/BYPLSdbef4GbRjsMBqHAygOj63lj2NBh+0SW5zUQx3onv5NY4Y8/7373bYhJwTM3k+Khse6gZN08KEWrsJ/4BOlhdGF4vJ4VaWUNzGezC0H5d0qN5EeQFm6mn5GjfPC8olZmIazu1agD39vaQ1x+2xm+5Gbw6rH9UuEuAluQsEKhOrXBV+rlZR/4aZTIGlHGpzfazgGMVV+6o61rAMhR6Pd6oFSqhrYetAXH6lmbqBaw2pcMOZAziiqiwOKjV94CPXc7ubQYng6G/I/JeHrgUEmDrgShzIeGdvaseF+cKEdzb7b0oqypuR/pwgKbENjPTaNgls9qo2FJEZWfZu4s/I8SLf1elNoRteMGYGtdUgzHQ5wScCtyL8cc97JMs2I+eJ7BTQcLlqlADrKj3p64YwDVafRvzAaAn4jXPH7ARfMLX5eBj9eq9TUYkPWhg 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 25/06/25 4:44 pm, David Hildenbrand wrote: > On 25.06.25 07:58, Dev Jain wrote: >> Use PTE batching to optimize __collapse_huge_page_copy_succeeded(). >> >> On arm64, suppose khugepaged is scanning a pte-mapped 2MB THP for >> collapse. >> Then, calling ptep_clear() for every pte will cause a TLB flush for >> every >> contpte block. Instead, clear_full_ptes() does a >> contpte_try_unfold_partial() which will flush the TLB only for the >> (if any) >> starting and ending contpte block, if they partially overlap with the >> range >> khugepaged is looking at. >> >> For all arches, there should be a benefit due to batching atomic >> operations >> on mapcounts due to folio_remove_rmap_ptes(). >> >> No issues were observed with mm-selftests. >> >> Signed-off-by: Dev Jain >> --- >>   mm/khugepaged.c | 27 +++++++++++++++++++++------ >>   1 file changed, 21 insertions(+), 6 deletions(-) >> >> diff --git a/mm/khugepaged.c b/mm/khugepaged.c >> index d45d08b521f6..3944b112d452 100644 >> --- a/mm/khugepaged.c >> +++ b/mm/khugepaged.c >> @@ -700,12 +700,15 @@ static void >> __collapse_huge_page_copy_succeeded(pte_t *pte, >>                           spinlock_t *ptl, >>                           struct list_head *compound_pagelist) >>   { >> +    unsigned long end = address + HPAGE_PMD_SIZE; >>       struct folio *src, *tmp; >> -    pte_t *_pte; >>       pte_t pteval; >> +    pte_t *_pte; >> +    int nr_ptes; >>   -    for (_pte = pte; _pte < pte + HPAGE_PMD_NR; >> -         _pte++, address += PAGE_SIZE) { >> +    for (_pte = pte; _pte < pte + HPAGE_PMD_NR; _pte += nr_ptes, >> +         address += nr_ptes * PAGE_SIZE) { >> +        nr_ptes = 1; >>           pteval = ptep_get(_pte); >>           if (pte_none(pteval) || is_zero_pfn(pte_pfn(pteval))) { >>               add_mm_counter(vma->vm_mm, MM_ANONPAGES, 1); >> @@ -719,21 +722,33 @@ static void >> __collapse_huge_page_copy_succeeded(pte_t *pte, >>                   ksm_might_unmap_zero_page(vma->vm_mm, pteval); >>               } >>           } else { >> +            const fpb_t flags = FPB_IGNORE_DIRTY | >> FPB_IGNORE_SOFT_DIRTY; >> +            int max_nr_ptes; >> + >>               struct page *src_page = pte_page(pteval); >>                 src = page_folio(src_page); >>               if (!folio_test_large(src)) >>                   release_pte_folio(src); >> + >> +            max_nr_ptes = (end - address) >> PAGE_SHIFT; >> +            if (folio_test_large(src)) >> +                nr_ptes = folio_pte_batch(src, address, _pte, >> +                              pteval, max_nr_ptes, >> +                              flags, NULL, NULL, NULL); >> + >>               /* >>                * ptl mostly unnecessary, but preempt has to >>                * be disabled to update the per-cpu stats >>                * inside folio_remove_rmap_pte(). >>                */ >>               spin_lock(ptl); >> -            ptep_clear(vma->vm_mm, address, _pte); >> -            folio_remove_rmap_pte(src, src_page, vma); >> +            clear_full_ptes(vma->vm_mm, address, _pte, nr_ptes, >> +                    /* full = */ false); > > Can you add this patch to your series if nobody objects and use > clear_ptes() > instead? Thanks! Stupid me thought, because of arm64-specific impl of these, it will be churn to do this, I am indeed lazy :) > > From 95e20ab0ff62bbbdcd89898c9d76fdc1ea961257 Mon Sep 17 00:00:00 2001 > From: David Hildenbrand > Date: Wed, 25 Jun 2025 12:55:20 +0200 > Subject: [PATCH] mm: add get_and_clear_ptes() and clear_ptes() > > Let's add variants to be used where "full" does not apply -- which will > be the majority of cases in the future. "full" really only applies if > we are about to tear down a full MM. > > Use get_and_clear_ptes() in existing code, clear_ptes() users will > be added next. > > Should we make these inline functions instead and add separate docs? > Probably not worth it for now. > > Signed-off-by: David Hildenbrand > --- >  include/linux/pgtable.h | 6 ++++++ >  mm/mremap.c             | 2 +- >  mm/rmap.c               | 2 +- >  3 files changed, 8 insertions(+), 2 deletions(-) > > diff --git a/include/linux/pgtable.h b/include/linux/pgtable.h > index cf1515c163e26..28679254b4f65 100644 > --- a/include/linux/pgtable.h > +++ b/include/linux/pgtable.h > @@ -736,6 +736,9 @@ static inline pte_t get_and_clear_full_ptes(struct > mm_struct *mm, >  } >  #endif > > +#define get_and_clear_ptes(_mm, _addr, _ptep, _nr) \ > +    get_and_clear_full_ptes(_mm, _addr, _ptep, _nr, 0) > + >  #ifndef clear_full_ptes >  /** >   * clear_full_ptes - Clear present PTEs that map consecutive pages of > the same > @@ -768,6 +771,9 @@ static inline void clear_full_ptes(struct > mm_struct *mm, unsigned long addr, >  } >  #endif > > +#define clear_ptes(_mm, _addr, _ptep, _nr) \ > +    clear_full_ptes(_mm, _addr, _ptep, _nr, 0) > + >  /* >   * If two threads concurrently fault at the same page, the thread that >   * won the race updates the PTE and its local TLB/Cache. The other > thread > diff --git a/mm/mremap.c b/mm/mremap.c > index b31740f77b840..92890f8367574 100644 > --- a/mm/mremap.c > +++ b/mm/mremap.c > @@ -322,7 +322,7 @@ static int move_ptes(struct pagetable_move_control > *pmc, >                               old_pte, max_nr_ptes); >              force_flush = true; >          } > -        pte = get_and_clear_full_ptes(mm, old_addr, old_ptep, > nr_ptes, 0); > +        pte = get_and_clear_ptes(mm, old_addr, old_ptep, nr_ptes); >          pte = move_pte(pte, old_addr, new_addr); >          pte = move_soft_dirty_pte(pte); > > diff --git a/mm/rmap.c b/mm/rmap.c > index 3b74bb19c11dd..8200d705fe4ac 100644 > --- a/mm/rmap.c > +++ b/mm/rmap.c > @@ -2031,7 +2031,7 @@ static bool try_to_unmap_one(struct folio > *folio, struct vm_area_struct *vma, >              flush_cache_range(vma, address, end_addr); > >              /* Nuke the page table entry. */ > -            pteval = get_and_clear_full_ptes(mm, address, pvmw.pte, > nr_pages, 0); > +            pteval = get_and_clear_ptes(mm, address, pvmw.pte, > nr_pages); >              /* >               * We clear the PTE but do not flush so potentially >               * a remote CPU could still be writing to the folio.