From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from SJ2PR03CU001.outbound.protection.outlook.com (mail-westusazon11012029.outbound.protection.outlook.com [52.101.43.29]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 68D92384233 for ; Thu, 13 Aug 2026 04:24:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.43.29 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786595058; cv=fail; b=IjRAl9BFVn6Tdt1tty79NT77IP43tnXOU4dpbXlIsKjJNexGEsnveQS/98pZlqeY0V3F38VWtB2Ho/e0gmhU6pa1f1lvm1eo0wZFxDxk5weNcATgXf5UmGyLigIJZJr4Bs6XWpCSykju+TnxwXw2zohptvdB+z6zyddrXLr5Toc= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786595058; c=relaxed/simple; bh=Cxu9ELvKmplpElna3JI88TGVrIhnPavPEhcP1F10lYE=; h=From:Date:Subject:MIME-Version:Content-Type:Message-ID:References: In-Reply-To:To:CC; b=kunzE7jj0sZsqLSGc7Km1V6QfJiWwN0QWDQBt0bXT25rK/TfRK+vWbTq4MpPMOXCxrvXJnruK5A4w11cJfqUMJOhU/3g01//+s+loJ4uBl4qJatpuZwzvRuE9VYQ9I1KJ3vEHe4iQIyp21bt6RTLZsn/NOg0zhOa69K5fMfrm6I= ARC-Authentication-Results:i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com; spf=fail smtp.mailfrom=amd.com; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b=1pQxI1Pj; arc=fail smtp.client-ip=52.101.43.29 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="1pQxI1Pj" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=NGfxcekwkJMyh3XK+LfkpSDpa4MmsBETgK1eo0DQj6bxqvoBQdyNyTFbIeCR+6peK6DBQLak50pA/wAG0y+Nhoa6gdSRmTTJ5rtMUP+mmOsV5IVwE0T98dGJI0od6vhgVs92Ux9Z1TLAe9boNknFuAfz2JY4EHz+OCEYMOiXl2GA05lwWrBtKttMB3gZsMZ0M1YqvlvhIwAhgNKGJmQqOP5+XHyzojVbHOvxvrOwAluLMQIbN/JpGbVX7jnmwMJ8EhAtWhqVSYxv7cAJn2eitNAMlKRSnduCAZpVHdcb0nH8jt/cON6lrrIgzraEgvpjxr/CgfHwdaauficQOVBZTQ== 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=cVf5yo691MlmhIFP/C9Zo6yzsQASTr3Bvaov1srUftQ=; b=e5rJUxjY9rrWpISdKZg8qzDvjgHmubZdBwz48RHWueF7qBspDURnS9CHt2j7UlSwKxjRKJOV3QSpMZzt3+xnXbsWswIlJDuMIC9GWJQbpcKPzWMxeeWUVbeJ5alIMSIRar4W9eksk6XiSVxmscZmOSsBpBrDK7MDYxBNyycR8JCJ+CIblVGMCPsAhIXLJRzao3pXASjqjb0SLzf4KdAFxP+dg3sWtMR5I9hZL0XMs5uEtqLalgzm0pPi4eEk6fLJk82U6/m8WHFNittFD8E51GrS6gJB0GWXKjSRFpjHPJKBwoRI+t7X4BG0aj5RTuduAdSKfMAswhCbwOMtntBlwQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=surriel.com smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=cVf5yo691MlmhIFP/C9Zo6yzsQASTr3Bvaov1srUftQ=; b=1pQxI1Pj2lKuORNLS4K+GswW4jMj81EG29w4+tf78U5RUqWUgFI/pN0z1tb+Ka7c/zZBc9RGKI2G6pkJJtcWjWDIlx2huvdmqoqSB89ssDu0rmESL/by0E895Wh91o4GcvaE+YD3ho5Snz+24s0lW2ITV7lBl7/+sSHqnAgvXEQ= Received: from BN8PR04CA0047.namprd04.prod.outlook.com (2603:10b6:408:d4::21) by CY5PR12MB6132.namprd12.prod.outlook.com (2603:10b6:930:24::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.315.11; Thu, 13 Aug 2026 04:24:11 +0000 Received: from BN3PEPF0000B374.namprd21.prod.outlook.com (2603:10b6:408:d4:cafe::a8) by BN8PR04CA0047.outlook.office365.com (2603:10b6:408:d4::21) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.315.12 via Frontend Transport; Thu, 13 Aug 2026 04:24:11 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by BN3PEPF0000B374.mail.protection.outlook.com (10.167.243.171) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.339.0 via Frontend Transport; Thu, 13 Aug 2026 04:24:11 +0000 Received: from [127.0.1.1] (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.45; Wed, 12 Aug 2026 23:24:01 -0500 From: Shivank Garg Date: Thu, 13 Aug 2026 04:23:12 +0000 Subject: [PATCH v2 1/7] mm: factor out generic PTE batch detection from swap_pte_batch() Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-ID: <20260813-migrate-rmap-batch-v2-1-3c5424c555c7@amd.com> References: <20260813-migrate-rmap-batch-v2-0-3c5424c555c7@amd.com> In-Reply-To: <20260813-migrate-rmap-batch-v2-0-3c5424c555c7@amd.com> To: Andrew Morton , David Hildenbrand , Lorenzo Stoakes , Rik van Riel , "Liam R. Howlett" , Vlastimil Babka , Harry Yoo , Jann Horn , Lance Yang , Mike Rapoport , Suren Baghdasaryan , Michal Hocko , Zi Yan , Matthew Brost , Joshua Hahn , Rakie Kim , Byungchul Park , Gregory Price , Ying Huang , "Alistair Popple" CC: Karim Manaouil , Frank van der Linden , Kinsey Ho , Wei Xu , Bharata B Rao , David Rientjes , Dev Jain , , , Shivank Garg X-Mailer: b4 0.15-dev-47d62 X-Developer-Signature: v=1; a=ed25519-sha256; t=1786595034; l=2122; i=shivankg@amd.com; s=20260518; h=from:subject:message-id; bh=Cxu9ELvKmplpElna3JI88TGVrIhnPavPEhcP1F10lYE=; b=hUlCPlvLE/GULh4fk/h3JpprlQXcCH/R+38RKBmsk8G0avdiTfmqgwLZd+ESs8NqhZRmLw2Vq oFZi8XA04ksC/qUBYK9IKsSAFUuiciZeOZLnx4zWuqVZx7ofXCMYlr2 X-Developer-Key: i=shivankg@amd.com; a=ed25519; pk=2l2QGTeXuGkZTtfmx0nPQU8iFZfjYmX/ymMojitevx4= X-ClientProxiedBy: satlexmb08.amd.com (10.181.42.217) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BN3PEPF0000B374:EE_|CY5PR12MB6132:EE_ X-MS-Office365-Filtering-Correlation-Id: 1e95d8c0-6e58-4184-c813-08def8f2b9b5 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|23010399003|36860700016|82310400026|1800799024|7416014|376014|10067099003|921020|56012099006|11063799006|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: NnLZSNR02sdKmqwSle1M/Ha+MPd0/JUmmdYloEvycHUPIk7T4hdPlM4J1sxHDMYG7d3+7zx9xIDdMvwrDido7VwpPHxD6KBICvYgk61twwrc7aRSY337aEuoDddgBI0hg2JHFdyUlm4B5TRx/PGo+Q2hhtZ++oQBcFZcPNgD3XCkE6UKAu1A0Wr67T5fXjbLOTT8t0UABQ3oK6Zmf2Bh+o0GEztGybm5DxI2II39UcRJlTklk4iMsdMH0v7JsxbGQdPVeZdajdygJmn1h/AvwpxU+KtBg4dNESkpbtu0NmJDpQ+VpsUPK3uN6vyyvjSM+AbjH//KUmz27k9eg7fL0ELgUJJadmvhRL6GefdEXAmiGky/IKSnwZFLyssOerHg12959k5g2FYeCi+PRliaPTOd1SzNh3m+lhGKpaHuEeaRJBkrL20yeCp0FeBjH6GmJTpFuzOLuXJ1y1Hw0ihhhkXvaIqsuMOgjKCwDh2JmKkJ87CN5H/qJTpceeeA0MobiYAi9AVithJchrvajou8v1Jv+2lK458slwa4eAL63DV5eGHoc21Z2AtZFrCsV0Akhm1l9aktxMXjZuPAqfrl+RglokR5aAbRMxVVLEi/QU7N+bbnRegX61gNRsCJ8uga8NsqFRsA+oDQMVf0E8thQL/aE+5NrF/MwM3CwCb4oBCLmgLgkIW8VcE7rIDt/Fdr5uTkCiip1GSSMGn/uqGcUtvXonmfzhZ/kYAKuKQ4TzU= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(23010399003)(36860700016)(82310400026)(1800799024)(7416014)(376014)(10067099003)(921020)(56012099006)(11063799006)(18002099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: h7BV1CY9wTu5ZpYpwVTcdZHW2lJAbAZBEG6mHHuZTXpUo3gvZD+3a6M5FwJmoAr3/bKs8BBPPYhbIwKBKowEf+VzuZCAcvxNoPifYZmZwTt9TY+TJTBmRCU044z51Sj8xTg4iusLQW7mnIjuliF+TA1wPoNj6aYmnoHaaULIXt9Do4RQ/X5nd0/Il9MCS2HU+ENZB9Yqyb4LtgisgUKzf5sqix2hKoCtVgVpGQdTTf4gi9yJsR6Ihr9G+c1AC8kBLgvl64HKvP6H3Hj224ghMo2XtHZ3o8zVVrc9ug9VSMGnr82e18dABeemTseQlGAmwzeNuebZXw3T7Y9H5wrfg2VinLnAUUbDU9T8I8ZR/J7w2gUmFog+1UVKqnQeWT0mxaMN8kWCIbGLWc5xzRNMVM3vrkXx9Hw8wuy65am/qogpyPezJtFe+3lhzASC1svH X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Aug 2026 04:24:11.4244 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 1e95d8c0-6e58-4184-c813-08def8f2b9b5 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BN3PEPF0000B374.namprd21.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY5PR12MB6132 Factor out the generic PTE batch detection logic from swap_pte_batch() into softleaf_pte_batch() helper, so that it can be reused by upcoming patch that adds restore-side batching of migration entries. swap_pte_batch() now keeps only its swap-specific concerns and delegates the batch detection to softleaf_pte_batch(). No functional changes intended. Signed-off-by: Shivank Garg --- mm/internal.h | 36 +++++++++++++++++++++--------------- 1 file changed, 21 insertions(+), 15 deletions(-) diff --git a/mm/internal.h b/mm/internal.h index a5d0488a54dc..1e1ab53b642e 100644 --- a/mm/internal.h +++ b/mm/internal.h @@ -560,6 +560,26 @@ static inline void set_softleaf_ptes(struct mm_struct *mm, unsigned long addr, } } +static inline int softleaf_pte_batch(pte_t *start_ptep, int max_nr, pte_t pte) +{ + pte_t expected_pte = pte_next_softleaf_offset(pte); + const pte_t *end_ptep = start_ptep + max_nr; + pte_t *ptep = start_ptep + 1; + + VM_WARN_ON(max_nr < 1); + + while (ptep < end_ptep) { + pte = ptep_get(ptep); + + if (!pte_same(pte, expected_pte)) + break; + expected_pte = pte_next_softleaf_offset(expected_pte); + ptep++; + } + + return ptep - start_ptep; +} + /** * swap_pte_batch - detect a PTE batch for a set of contiguous swap entries * @start_ptep: Page table pointer for the first entry. @@ -577,23 +597,9 @@ static inline void set_softleaf_ptes(struct mm_struct *mm, unsigned long addr, */ static inline int swap_pte_batch(pte_t *start_ptep, int max_nr, pte_t pte) { - pte_t expected_pte = pte_next_softleaf_offset(pte); - const pte_t *end_ptep = start_ptep + max_nr; - pte_t *ptep = start_ptep + 1; - - VM_WARN_ON(max_nr < 1); VM_WARN_ON(!softleaf_is_swap(softleaf_from_pte(pte))); - while (ptep < end_ptep) { - pte = ptep_get(ptep); - - if (!pte_same(pte, expected_pte)) - break; - expected_pte = pte_next_softleaf_offset(expected_pte); - ptep++; - } - - return ptep - start_ptep; + return softleaf_pte_batch(start_ptep, max_nr, pte); } #endif /* CONFIG_MMU */ -- 2.43.0