From nobody Mon Jun 8 07:26:13 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=pass (i=1 dmarc=pass fromdomain=amd.com); dmarc=pass(p=quarantine dis=none) header.from=amd.com ARC-Seal: i=2; a=rsa-sha256; t=1780617147; cv=pass; d=zohomail.com; s=zohoarc; b=W9L5PSuFnDnTRZUzikcP4kN09kLU9Took45dXopw/HWUHF8Hp1qfPh1vD0kMhtDrKivd/GiXviuf3jJu5K9+pnlMXKL9TVtDZBL6WWyLUoVbCCoDoC4yON0wOgsBmSlYUYbV8ZgT1aLV0irp7BVBjWXI8dT1GsK8rcAIdfeUPVc= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1780617147; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=W9jLJUo0KRF9a1Emi4WUAg1Yr2QpnkFjH6PBbQy5L6w=; b=acAS/1ZoAsOY1r+pKmQY8fHiMEM/sm8I6abmpd+tQUDUsWzhmIg3cfYdktdXuPCmYm8RHMSh9ze8xg/0MeCiM3S42CJrQCdiiwQUyKfiueIAWirRms8Z5Fr4xCt/ZrPw84KduZ8tbUrcaWlkRwrbG4kw3CXMiezhDN8ZGsq6p6U= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=pass (i=1 dmarc=pass fromdomain=amd.com); dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1780617147414492.79956852602027; Thu, 4 Jun 2026 16:52:27 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1328772.1593092 (Exim 4.92) (envelope-from ) id 1wVHr6-0004lp-Kl; Thu, 04 Jun 2026 23:52:08 +0000 Received: by outflank-mailman (output) from mailman id 1328772.1593092; Thu, 04 Jun 2026 23:52:08 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1wVHr6-0004li-Hv; Thu, 04 Jun 2026 23:52:08 +0000 Received: by outflank-mailman (input) for mailman id 1328772; Thu, 04 Jun 2026 23:52:06 +0000 Received: from mx.expurgate.net ([195.190.135.10]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1wVHr4-0004lJ-Ie for xen-devel@lists.xenproject.org; Thu, 04 Jun 2026 23:52:06 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1wVHr3-002qWp-SJ for xen-devel@lists.xenproject.org; Fri, 05 Jun 2026 01:52:05 +0200 Received: from [10.42.69.11] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from ) id 6a220f39-e002-0a2a0a5209dd-0a2a450ba2b8-48 for ; Fri, 05 Jun 2026 01:52:05 +0200 Received: from [52.101.53.0] (helo=BL0PR03CU003.outbound.protection.outlook.com) by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1) (envelope-from ) id 6a220fa3-212f-0a2a450b0019-346535007c5f-4 for ; Fri, 05 Jun 2026 01:52:05 +0200 Received: from BL1PR13CA0362.namprd13.prod.outlook.com (2603:10b6:208:2c0::7) by SJ1PR12MB6363.namprd12.prod.outlook.com (2603:10b6:a03:453::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.92.8; Thu, 4 Jun 2026 23:46:45 +0000 Received: from BL6PEPF00020E66.namprd04.prod.outlook.com (2603:10b6:208:2c0:cafe::29) by BL1PR13CA0362.outlook.office365.com (2603:10b6:208:2c0::7) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.92.7 via Frontend Transport; Thu, 4 Jun 2026 23:46:45 +0000 Received: from satlexmb07.amd.com (165.204.84.17) by BL6PEPF00020E66.mail.protection.outlook.com (10.167.249.27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.92.5 via Frontend Transport; Thu, 4 Jun 2026 23:46:44 +0000 Received: from satlexmb10.amd.com (10.181.42.219) 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.41; Thu, 4 Jun 2026 18:46:44 -0500 Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb10.amd.com (10.181.42.219) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.41; Thu, 4 Jun 2026 18:46:44 -0500 Received: from fedora.mshome.net (10.180.168.240) by satlexmb08.amd.com (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.41 via Frontend Transport; Thu, 4 Jun 2026 18:46:43 -0500 X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=amd.com header.i="@amd.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=osmmaSnh/GWPUxySpk2Ml6g9LOoMBKN7JRiTPSkdWkPJuqf0PL8TjAXljE1ZFVcLZF1VgIvmzLmJE8sitd6+DvE+OmYN/hYI78PQxtl9+WFGIdQn2CKXgmOXrVsn93UQaQ8nm9BsiOdoIf9JwjfnmV8G5BhM+Ge//q+Fira9sgPbcFddhcVgDUYATkvoc5OudHXgDrkIR5nW72iqPtI5y1au3ZHDcLmRbUpKXL2SGHYOUQ75OIidjc/bs+W8jEIzHAyyK9bONKlDRhfH9VGeMBdMtI8j9t175lPik4DKTyMSisRVxP9o+AyENn3sCqR80MPIPUY6KFPUMNpzwB5i2w== 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=W9jLJUo0KRF9a1Emi4WUAg1Yr2QpnkFjH6PBbQy5L6w=; b=Ge7CgrQ6jue31mAuWpzWS/UGifhhb3sFtb4f8XMOZV9bkyF296dUbyxgBAtDanMUddghx93kM23DeQYGz+eDqFZW4ulKqVSCh/MbHnxLI1LtQ/5ld8GovNjms/cds1vc2azsSOs0OszYMntKtuM60TNrrdfeqesyxCIBSLt02Vj6tgJkKotLVb2k7e/S52cHWSalJX+Z3q0HtR4qTAtx0ArlllFEiTD9D/iSUrNgs9yTnFgidsoGPd1Z2WO6LSl6YFYcIGcZfwijmpSq6p39xbMRVGLQdUsPAdWk9bKIza+ld0cR5LNnBE9wK3+GhKlDMiexfTwVspYbLunBlrmeWQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=lists.xenproject.org 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=W9jLJUo0KRF9a1Emi4WUAg1Yr2QpnkFjH6PBbQy5L6w=; b=27OlE5Hy7RIhd1K5y71gHSoDwx0gqupKyZGwLoilM9bIaXg3Y+ZB9fNkwC3zYbftvnsLm5QFq3BL1vR2DgeZ+vA4Z/6fbZCQanExuz0dE7NhC/OaQBD1yBbkaIi0OKvcwZGtzY+/WQJcOnmgQPK83QWd6bChkLkLdAQkJys6H1o= 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 (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; 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 From: Jason Andryuk To: CC: Jason Andryuk , Jan Beulich , Andrew Cooper , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= , Teddy Astie Subject: [PATCH v2 1/3] xen/x86: Remove unneeded stub_page setting Date: Thu, 4 Jun 2026 19:18:35 -0400 Message-ID: <20260604231837.804560-2-jason.andryuk@amd.com> X-Mailer: git-send-email 2.54.0 In-Reply-To: <20260604231837.804560-1-jason.andryuk@amd.com> References: <20260604231837.804560-1-jason.andryuk@amd.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL6PEPF00020E66:EE_|SJ1PR12MB6363:EE_ X-MS-Office365-Filtering-Correlation-Id: 08101000-98b8-425c-8693-08dec293891d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|82310400026|36860700016|56012099006|22082099003|18002099003|11063799006; X-Microsoft-Antispam-Message-Info: MKIBCR/mnf+KLLMkFFtuKThY2HXm7LveOtSpHrtcK1550TI2TdTcbGeV7n57pHzNhsD0KcT3cLKNkaGtxVihjRTgMhnaRm1KiVRW/x8kSaLkQB65t4yLjM6u3ohEbra79bt6Jg2RdgYb54E1sLMipfO+AngyDUAECWUwgmc/lHJqY8Afu5gK430J1R+N2T6tfWWZdzGVtQy+/JTx9vrghP+kWMGOA44EL6fxU6vgyQTIwSBO5mzypoqZJZM59fgprvgQMUop+zK1aVIYKa/GL58MCq9CAHiNV2MUOTRFDfrRmAwHhrE1Il5XdO1s+MMiYKyCQb3rT9qNPckj4mY+4ShjZvK60iDOMDqoK3JhJ8YQ29AkEZmTpTKiXlO6+50ri7aJOoRQUzXZEcePLfhcEqIkKaM5XlXpMJQFPQeSHAM4ZNPZPf4uUm9FHtYdT2yzcZdRR7L8AXYUUXc68R1lfHKTblc+CEL7rMVmFhC6l+f2OwEwNRziIpNIqYhKc2xdfP5lye/7NOuxIOoG/LSWfO/B9mhCPWWzqWKr4jYenBX4qwnSEIMmitZ/7f7lX4wTKyYsAKjSpmUY0gVJ0xTJxgfSLfeZbBphUsJK3IN9pgRACtTW6q2B5xm0rUAXxCOFehoftFN0pSic6AQpIUm8CWbqnjG+pXQAurLOdLz6apTOda5q/djGe2E5TwUVNIQ0WE61f8KkBWBxjvLcUh6Kc/obtCRT+RJQgOv/HxkXD1M= 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)(1800799024)(376014)(82310400026)(36860700016)(56012099006)(22082099003)(18002099003)(11063799006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: wkabyFOyKczcE8u9AaSo1lTcyML1wU/ynJ48jO/AYLvwraWOFAJl02A6+uWpK+DmliuszNcdWl2YY2C1nl7C7HJMiHP5uKwVlWkuu5bQoKkNrCNk6rB95y83BE0dqmtlMmQOCmEBqR5pVyRJqRGyCLI8TuumQ77L6RJOl5PMdV/RgJigCaz7JP1IgklsWseaq0fJDhy8xL8lAKuHyvEu3Pc5IooPzTuKNVjVkJPbukvOKtDODsIv0G3k8RfPtGnGFX9ImYNhFVka3N7zjImpp7Uc084Xy57zVsyQpV12HX+231UAVB9XVlipbXq4eumy9jBFy48AVgWQ/P0/yqDjfc2Ot7+u5l/9sPEJ2wZ/AYhyqQozKOp8wSNZep++7gkS1t9EEvf1Dlg5D+8RpYZgjmKaHM2VuyQ6RVeAiJk/q1J6SEFNvBWK2Wp4Yju0ev1W X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Jun 2026 23:46:44.9221 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 08101000-98b8-425c-8693-08dec293891d 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: BL6PEPF00020E66.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ1PR12MB6363 X-purgate-ID: tlsNG-42698a/1780617125-21183F3B-39CF961C/0/0 X-purgate-type: clean X-purgate-size: 927 X-ZohoMail-DKIM: pass (identity @amd.com) X-ZM-MESSAGEID: 1780617148668158500 Content-Type: text/plain; charset="utf-8" stub_page is not used in the for loop, and it unconditionally set below just outside the patch context with: stub_page =3D alloc_stub_page(cpu, &per_cpu(stubs.mfn, cpu)); Remove it. Signed-off-by: Jason Andryuk Acked-by: Roger Pau Monn=C3=A9 --- xen/arch/x86/smpboot.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xen/arch/x86/smpboot.c b/xen/arch/x86/smpboot.c index ff05955bae..7241dba621 100644 --- a/xen/arch/x86/smpboot.c +++ b/xen/arch/x86/smpboot.c @@ -1091,7 +1091,7 @@ static int cpu_smpboot_alloc(unsigned int cpu) memcpy(per_cpu(idt, cpu), bsp_idt, sizeof(bsp_idt)); disable_each_ist(per_cpu(idt, cpu)); =20 - for ( stub_page =3D 0, i =3D cpu & ~(STUBS_PER_PAGE - 1); + for ( i =3D cpu & ~(STUBS_PER_PAGE - 1); i < nr_cpu_ids && i <=3D (cpu | (STUBS_PER_PAGE - 1)); ++i ) if ( cpu_online(i) && cpu_to_node(i) =3D=3D node ) { --=20 2.54.0 From nobody Mon Jun 8 07:26:14 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=pass (i=1 dmarc=pass fromdomain=amd.com); dmarc=pass(p=quarantine dis=none) header.from=amd.com ARC-Seal: i=2; a=rsa-sha256; t=1780616847; cv=pass; d=zohomail.com; s=zohoarc; b=UExkA0a6eyRE9uLOffD4EIKW5V5ByPCAsJVPJlZDLDlacq1urKiKFTiUNFvlpXsCROmdYiBJlHjy+bNq11Z4sKjhZ/22f3pniakUFCh1sl5bS0/Cske9mXpmfAgSsyDvgh+NtNPGKrLXPrcNcNEnnNQAFT1tOnk6gNaGMsbWZec= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1780616847; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=N/K276bWRhEK1HjFm+MjFQzRZlMZ7rWNjT0GqIZRCag=; b=AHn2kNHN5N0YkvYcS4P3/fnp8DB0YhESYiE4tIDo5OwjTGwk4M+IXa8GooZsq9diqU2Ml1Lb9h/R3tS3ZldwAR+fSHORMqbkZxgvtBICVHouHia2fDSx6w6YUSTfZq4M8uqJmMRUZsEAfn5XlO5MK5jBPtWZAqrrCMFPmcolaB8= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=pass (i=1 dmarc=pass fromdomain=amd.com); dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1780616847505393.46147478475586; Thu, 4 Jun 2026 16:47:27 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1328744.1593065 (Exim 4.92) (envelope-from ) id 1wVHm7-0001PT-Gd; Thu, 04 Jun 2026 23:46:59 +0000 Received: by outflank-mailman (output) from mailman id 1328744.1593065; Thu, 04 Jun 2026 23:46:59 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1wVHm7-0001PM-DG; Thu, 04 Jun 2026 23:46:59 +0000 Received: by outflank-mailman (input) for mailman id 1328744; Thu, 04 Jun 2026 23:46:58 +0000 Received: from mx.expurgate.net ([194.145.224.20]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1wVHm6-0001P6-Mv for xen-devel@lists.xenproject.org; Thu, 04 Jun 2026 23:46:58 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1wVHm6-00Biis-3j for xen-devel@lists.xenproject.org; Fri, 05 Jun 2026 01:46:58 +0200 Received: from [10.42.69.5] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from ) id 6a220e44-5cb7-0a2a0a5109dd-0a2a4505a1a0-16 for ; Fri, 05 Jun 2026 01:46:57 +0200 Received: from [52.101.201.8] (helo=PH7PR06CU001.outbound.protection.outlook.com) by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1) (envelope-from ) id 6a220e6d-aaa8-0a2a45050019-3465c9080b28-4 for ; Fri, 05 Jun 2026 01:46:57 +0200 Received: from BY3PR04CA0009.namprd04.prod.outlook.com (2603:10b6:a03:217::14) by IA0PR12MB7676.namprd12.prod.outlook.com (2603:10b6:208:432::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.92.8; Thu, 4 Jun 2026 23:46:49 +0000 Received: from CO1PEPF00012E64.namprd05.prod.outlook.com (2603:10b6:a03:217:cafe::14) by BY3PR04CA0009.outlook.office365.com (2603:10b6:a03:217::14) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.92.8 via Frontend Transport; Thu, 4 Jun 2026 23:46:48 +0000 Received: from satlexmb08.amd.com (165.204.84.17) by CO1PEPF00012E64.mail.protection.outlook.com (10.167.249.73) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.92.5 via Frontend Transport; Thu, 4 Jun 2026 23:46:48 +0000 Received: from satlexmb10.amd.com (10.181.42.219) by satlexmb08.amd.com (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.41; Thu, 4 Jun 2026 18:46:46 -0500 Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb10.amd.com (10.181.42.219) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.41; Thu, 4 Jun 2026 18:46:46 -0500 Received: from fedora.mshome.net (10.180.168.240) by satlexmb08.amd.com (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.41 via Frontend Transport; Thu, 4 Jun 2026 18:46:45 -0500 X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=amd.com header.i="@amd.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=beMpzYk4BI7eulFjYHWel2XpVSAhjCvZzVlnOh8LrisyDA+IVCWsV2W6nie7BvsT6QMcTZoMI0BXxqj904XKmT8CUyLU+0bJVxhopKMuZBSHxxGGxdb7E7ULw0k49t2/jER6/qI8ZGF3H8SyYilfSPb22/O9jLPHkuRxnNYfOUxSU5OlbnEhs71VHBiw4xX8bsRu3NwqUM/T7XnpTv6n4YNHbTjCQZQMEtp7NTuif6nmsBlGXYx2HSdR/ymuxHLvKfLaRRKd/WAdjHDeZMBksR+pydWzj8f6m+eZ6jeIpBhrBrr77ZyfmtSKS9WEJh3wxxYvzes0b+3p6w2Zl+UwcA== 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=N/K276bWRhEK1HjFm+MjFQzRZlMZ7rWNjT0GqIZRCag=; b=j1Wc8WLJ1F5UFf19dT9G4l9upk+VYynKOXU0fMWFZqkalFXBnLUKhuK+x75YZea3vJVNysFxfUnzejB6MmNoaWv9332aY5cUGIUIPg7TKCv7r/epI2VctET07WCbonrJiwC2srhKgDKzUc3N9GlP2FCqx87thyCuZ9apd/LgFHKdkvcUjIUMimiGjxxU77Oss9Iqo7yuhJ/PLUqNPhKsDPy+ggpRBeymJQ/NdVoDVSvVsTF8VQaPLTjKPCFvmkNrma9Ul27ehexS96IAsAviM5IaAp4sful9eI2OfdfaQUhKUSh/iHecAxfdFECoJoxd4eoSf9QJKDQ1YSx/bYce1Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=lists.xenproject.org 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=N/K276bWRhEK1HjFm+MjFQzRZlMZ7rWNjT0GqIZRCag=; b=zj2X3jfAuLFLbQ4Lia/yqhldc+tapSuSgpTTv5LV9s0Gme1ikhQZBXV8uv4cWEhvUDsPK4mjaJLm2l8NMl5h9nEBE+tN8urSH07xBMlnfspYmO18Z8+IhEuMr11cEVYkkfjD8IKUzWuWdrDt5aXM6dQgNcXWB+cVKgVY/4SD0wo= 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 (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; 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=satlexmb08.amd.com; pr=C From: Jason Andryuk To: CC: Jason Andryuk , Jan Beulich , Andrew Cooper , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= , Teddy Astie Subject: [PATCH v2 2/3] xen/x86: Split out page_walk_mfn() helper Date: Thu, 4 Jun 2026 19:18:36 -0400 Message-ID: <20260604231837.804560-3-jason.andryuk@amd.com> X-Mailer: git-send-email 2.54.0 In-Reply-To: <20260604231837.804560-1-jason.andryuk@amd.com> References: <20260604231837.804560-1-jason.andryuk@amd.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CO1PEPF00012E64:EE_|IA0PR12MB7676:EE_ X-MS-Office365-Filtering-Correlation-Id: 3daf67a8-94bd-4328-83b9-08dec2938b16 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|36860700016|1800799024|376014|22082099003|18002099003|6133799003|56012099006|11063799006; X-Microsoft-Antispam-Message-Info: 1GzPG10W9udahPG7+IIKmBkWwdmcR4/EpwuW5VdPBxA7r3nK1pOtDUQIt/pMWSMvd48fzSMHpk563fSKSSmlqlN48g/6dBZ197kcRUfHy5tyhLmvt/iNG51OWM9SYrnFh5WN6Cm4NdngWQPZxvia2rl3wtaFm+Ou2Tnls6BLDKEnIn3fqAmT74r13/Xc+QK+f/sZ6+e7wpF5YjfqOy7zNAxmtTfYrrCqFDmmsKWIfCVhe/bXmBp30BG9TfldZyLHStMz0Y3iX60GqiBIkKh9yzcxvWk8V2x9XFNHZJzBYAGtmHTV1WYH6neMO21lOGoysqdtr440G64p/J0sVdbwe4p2PjnU0Ph3e6PvV1RCjSsscQ8v2G40j6pkDASffoBlQ4VEmFvFt3iJilgd3nNe3Q1dPuyZwh17DmMbFCHtxzIC+UceFV7PGKT661ywBbAvUNR06L8ndzcaqjxV4Bxoprm/LNSdYOT4iok9GIPwrzqjdDTgOOeRPGhgantEmIJISYHpgz2mqr80sr+asymaPSuZ1TfyZ5S6Fm5DXK02LRjVbeUZq0lmS5eA9kKV8+YWZwUI6zbCPfZSZWFadDXFTKP0iubJqNO41p9ZhskfmezhC20ojgzvljBZxzHJUYLAfV0frVgyKnWgPv5Yy/5iykFaAHVAI1CkzE8+h3bw0KNpscnbcuz5Ob1g3TCPRmsJL6ESqswUmVLu9bPmscKi2l7qU/jQJd3DKvb0FLK7wbs= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(36860700016)(1800799024)(376014)(22082099003)(18002099003)(6133799003)(56012099006)(11063799006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: V5q3+SvOcLlyRD62FvFNBNBs2Sy5KNRLr6VLUhZjn3AV+mdJU3zbtpXLlO5mNpOxygVvu5pY2Lv3RjrmF2jfpn7dDERHNeZpeIEDUDmszpr/Y/KSGDVNX9Rng/fiTfgwU/ZhmwHM4XOw9Mgff1oHydd48OhIy1uf+3K3boulKZedpAlZiBlzgw2kxoRe8X0d+TSv+M/zq5DcJtTKnREy6NnweZKPNoB7QQkXOykiWZaeRMs9FscMK057aihOb48fMGMU/gcy+dLG2XmTANf+37BbI8/V1RnSte7ne4uaNJHcuF47tV288ig9b/sbfxb9Lt++Si5aMYC+6lA9j45DdLbvWWe56N7n91QketJHmK8A8/OeyhyhWy4fWYaHVCIIIGfV2JMISuT0BxEdDzOuEaf9AuzN2rKzm5h/Oqqn1GH4S6fI1h1xeUtUiMkn4C5O X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Jun 2026 23:46:48.1335 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 3daf67a8-94bd-4328-83b9-08dec2938b16 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=[satlexmb08.amd.com] X-MS-Exchange-CrossTenant-AuthSource: CO1PEPF00012E64.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA0PR12MB7676 X-purgate-ID: tlsNG-c201ff/1780616817-D9971443-86B4A269/0/0 X-purgate-type: clean X-purgate-size: 3566 X-ZohoMail-DKIM: pass (identity @amd.com) X-ZM-MESSAGEID: 1780616849428158500 Content-Type: text/plain; charset="utf-8" do_page_walk() returns a mapping of the underlying address. Split out page_walk_mfn() which returns the mfn_ti, and have do_page_walk() use that. The new standalone page_walk_mfn() is generally useful for looking up the MFN pointed to by an a virtual address. It will be used in the x86 CPU stub logic to determine if a stub page is already populated. Signed-off-by: Jason Andryuk --- xen/arch/x86/include/asm/mm.h | 1 + xen/arch/x86/x86_64/mm.c | 31 +++++++++++++++++++++---------- 2 files changed, 22 insertions(+), 10 deletions(-) diff --git a/xen/arch/x86/include/asm/mm.h b/xen/arch/x86/include/asm/mm.h index 06c20ab8de..6dc5115093 100644 --- a/xen/arch/x86/include/asm/mm.h +++ b/xen/arch/x86/include/asm/mm.h @@ -587,6 +587,7 @@ void audit_domains(void); void make_cr3(struct vcpu *v, mfn_t mfn); pagetable_t update_cr3(struct vcpu *v); int vcpu_destroy_pagetables(struct vcpu *v); +mfn_t page_walk_mfn(unsigned long cr3, unsigned long addr); void *do_page_walk(struct vcpu *v, unsigned long addr); =20 /* Allocator functions for Xen pagetables. */ diff --git a/xen/arch/x86/x86_64/mm.c b/xen/arch/x86/x86_64/mm.c index 8eadab7933..d197dce9f8 100644 --- a/xen/arch/x86/x86_64/mm.c +++ b/xen/arch/x86/x86_64/mm.c @@ -59,29 +59,26 @@ extern unsigned int compat_machine_to_phys_mapping[]; =20 #endif /* CONFIG_PV32 */ =20 -void *do_page_walk(struct vcpu *v, unsigned long addr) +mfn_t page_walk_mfn(unsigned long cr3, unsigned long addr) { - unsigned long mfn =3D pagetable_get_pfn(v->arch.guest_table); + unsigned long mfn =3D cr3; l4_pgentry_t l4e, *l4t; l3_pgentry_t l3e, *l3t; l2_pgentry_t l2e, *l2t; l1_pgentry_t l1e, *l1t; =20 - if ( !is_pv_vcpu(v) || !is_canonical_address(addr) ) - return NULL; - l4t =3D map_domain_page(_mfn(mfn)); l4e =3D l4t[l4_table_offset(addr)]; unmap_domain_page(l4t); if ( !(l4e_get_flags(l4e) & _PAGE_PRESENT) ) - return NULL; + return INVALID_MFN; =20 l3t =3D map_l3t_from_l4e(l4e); l3e =3D l3t[l3_table_offset(addr)]; unmap_domain_page(l3t); mfn =3D l3e_get_pfn(l3e); if ( !(l3e_get_flags(l3e) & _PAGE_PRESENT) || !mfn_valid(_mfn(mfn)) ) - return NULL; + return INVALID_MFN; if ( (l3e_get_flags(l3e) & _PAGE_PSE) ) { mfn +=3D PFN_DOWN(addr & ((1UL << L3_PAGETABLE_SHIFT) - 1)); @@ -93,7 +90,7 @@ void *do_page_walk(struct vcpu *v, unsigned long addr) unmap_domain_page(l2t); mfn =3D l2e_get_pfn(l2e); if ( !(l2e_get_flags(l2e) & _PAGE_PRESENT) || !mfn_valid(_mfn(mfn)) ) - return NULL; + return INVALID_MFN; if ( (l2e_get_flags(l2e) & _PAGE_PSE) ) { mfn +=3D PFN_DOWN(addr & ((1UL << L2_PAGETABLE_SHIFT) - 1)); @@ -105,10 +102,24 @@ void *do_page_walk(struct vcpu *v, unsigned long addr) unmap_domain_page(l1t); mfn =3D l1e_get_pfn(l1e); if ( !(l1e_get_flags(l1e) & _PAGE_PRESENT) || !mfn_valid(_mfn(mfn)) ) - return NULL; + return INVALID_MFN; =20 ret: - return map_domain_page(_mfn(mfn)) + (addr & ~PAGE_MASK); + return _mfn(mfn); +} + +void *do_page_walk(struct vcpu *v, unsigned long addr) +{ + mfn_t mfn; + + if ( !is_pv_vcpu(v) || !is_canonical_address(addr) ) + return NULL; + + mfn =3D page_walk_mfn(pagetable_get_pfn(v->arch.guest_table), addr); + if ( !mfn_valid(mfn) ) + return NULL; + + return map_domain_page(mfn) + (addr & ~PAGE_MASK); } =20 /* --=20 2.54.0 From nobody Mon Jun 8 07:26:14 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=pass (i=1 dmarc=pass fromdomain=amd.com); dmarc=pass(p=quarantine dis=none) header.from=amd.com ARC-Seal: i=2; a=rsa-sha256; t=1780616848; cv=pass; d=zohomail.com; s=zohoarc; b=QPoWcTRx6+LsKjFv3wyM+oVsPJ8NZA70EOFeapM8yei59rerR7BhH8xdk62vK6So0jeemhFplGQXXJm3hSFyd47MZstUzsXmwq15O7c8tB/+n3O40AVOBUoB9UI81vDSfgQTZGjBZcz0RDflbBztlui8wLWkQ93wxsg30J6/BUM= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1780616848; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=culTp5npElJ0EQCOehNU8q2yQwTQyvCCP0XUiLS9xBE=; b=dhX118GQkK4bUkz1BxHC8ZWjlfmoO6QLnf8PKJ3myaCNKGSNuW0BGa5OGAgsC7Zx6wxA8jF6HppUOFsm3OV39hcC35lV/z7L1NXSXYXr88q/GrRigHS9+cefYs0akBFtCMVV14T6y4dO/OpVgvEB2szesnUGLX0pwDbifEKC+Sw= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=pass (i=1 dmarc=pass fromdomain=amd.com); dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1780616848486966.1468569811586; Thu, 4 Jun 2026 16:47:28 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1328745.1593074 (Exim 4.92) (envelope-from ) id 1wVHmA-0001eH-OZ; Thu, 04 Jun 2026 23:47:02 +0000 Received: by outflank-mailman (output) from mailman id 1328745.1593074; Thu, 04 Jun 2026 23:47:02 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1wVHmA-0001eA-L5; Thu, 04 Jun 2026 23:47:02 +0000 Received: by outflank-mailman (input) for mailman id 1328745; Thu, 04 Jun 2026 23:47:01 +0000 Received: from mx.expurgate.net ([194.145.224.20]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1wVHm9-0001d4-4K for xen-devel@lists.xenproject.org; Thu, 04 Jun 2026 23:47:01 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1wVHm8-00Biis-HD for xen-devel@lists.xenproject.org; Fri, 05 Jun 2026 01:47:00 +0200 Received: from [10.42.69.5] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from ) id 6a220e44-5cb7-0a2a0a5109dd-0a2a4505a1a0-20 for ; Fri, 05 Jun 2026 01:46:59 +0200 Received: from [52.101.53.25] (helo=BL0PR03CU003.outbound.protection.outlook.com) by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1) (envelope-from ) id 6a220e72-aaa8-0a2a45050019-346535190fa7-3 for ; Fri, 05 Jun 2026 01:46:59 +0200 Received: from BL1PR13CA0432.namprd13.prod.outlook.com (2603:10b6:208:2c3::17) by PH7PR12MB7967.namprd12.prod.outlook.com (2603:10b6:510:273::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.92.8; Thu, 4 Jun 2026 23:46:50 +0000 Received: from BL6PEPF00020E64.namprd04.prod.outlook.com (2603:10b6:208:2c3:cafe::5e) by BL1PR13CA0432.outlook.office365.com (2603:10b6:208:2c3::17) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.92.7 via Frontend Transport; Thu, 4 Jun 2026 23:46:49 +0000 Received: from satlexmb07.amd.com (165.204.84.17) by BL6PEPF00020E64.mail.protection.outlook.com (10.167.249.25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.92.5 via Frontend Transport; Thu, 4 Jun 2026 23:46:49 +0000 Received: from satlexmb08.amd.com (10.181.42.217) 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.41; Thu, 4 Jun 2026 18:46:47 -0500 Received: from fedora.mshome.net (10.180.168.240) by satlexmb08.amd.com (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.41 via Frontend Transport; Thu, 4 Jun 2026 18:46:46 -0500 X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=amd.com header.i="@amd.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=DjOyVFw2/QVWNFLjXHaF6j+8H+X0sF6WJ5mXvqdeS1bmpo3EnssE3I60+rwa0bjyXUFTEhyUAFIk/P6y8gZkP2ffhiTI/e5n0Yfp6ggbed+iVRGUwAB1o/5otyL7I/4r9AixlfmbAyiHjxDqKWWG2jocUVItF23S04XrmQ2pcti80UUPWsyA+vSMD/35JiV5bfXE6WSAFcx9H7jabNRXXmGDRwXQcneC/L6tXdkmxfl8wDd+ms+eM/LDYhaKpmsR3JHtdTCgASA0XZTi5Vs0/zB99HA+JXxgzCzCmp2CK8qSHTSlSJ48dHp4A2Mv2wjiJNGOBXxXF82dpe5n9FPWZQ== 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=culTp5npElJ0EQCOehNU8q2yQwTQyvCCP0XUiLS9xBE=; b=mSKaooZ3gqYoBiHPajhtKWDi1nbAxT6nBKdEhuaNM/rEoCzzOch5RHEaXqwxbIgwI96PTh9QbRxe/v/aEfNyxuVqJi9ml8bux61IWr6UuIeDV/nvPvswAHBd4BHGVenD+PhsKExygSCkb2Db4wZGJTvtMVyJrm9IcZQF2ELyami2SLVvEHqIW9WOImbI60ZVp9iSHOE2MAyPeeu/raw81cXUf4IvvQ9OeQJN7eejexsV7wYxZoIMb4NOv3iw7lrgb7gmWpzZF1dBDBWgjXgsX8VvxajqWpwTQr4yJaVHgY6iFFUGwFjobRt9tylwxlWlb1/mP/oGvdry6VgXJfMNVA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=lists.xenproject.org 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=culTp5npElJ0EQCOehNU8q2yQwTQyvCCP0XUiLS9xBE=; b=nBA2nMKBcre1GUFqrK1iO486e6YpiEqpshMX5r4cbMrPXJCLg9sl/MuCY09XBfhQEDYU+abNJwg5HIf3ezjgCaaHGg5W4WuKm38eeDGPXPsTrvLX7/Dres6TH2Fo+GfWcOhhOHVdqlD+8Ux5h/9b2SuAJYo3Nh0Llr3lQ9k0B2s= 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 (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; 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 From: Jason Andryuk To: CC: Jason Andryuk , Jan Beulich , Andrew Cooper , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= , Teddy Astie Subject: [PATCH v2 3/3] xen/x86: Change stub page allocation/free logic Date: Thu, 4 Jun 2026 19:18:37 -0400 Message-ID: <20260604231837.804560-4-jason.andryuk@amd.com> X-Mailer: git-send-email 2.54.0 In-Reply-To: <20260604231837.804560-1-jason.andryuk@amd.com> References: <20260604231837.804560-1-jason.andryuk@amd.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL6PEPF00020E64:EE_|PH7PR12MB7967:EE_ X-MS-Office365-Filtering-Correlation-Id: 81cef292-8943-40d1-98e1-08dec2938bc4 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|376014|36860700016|1800799024|22082099003|18002099003|56012099006|11063799006; X-Microsoft-Antispam-Message-Info: DtCqgdskuSN4ag7qf6YcMx3DJReKpHSfDIfI0zz+9yeH9/MZ3WJ8ZGKwnQNLwUkwPrOEG5CfQvMMvRYoqUaiOJ4KmV59M2COjs9Utq7oLy5G6vJJzpNU7Zaax9SHa2AqRJO0gc0OvrBYzPcH04AQOiLEgpzVETEavv684nMGWZxwUmBCLQq9Y2yy1SsLVOx3GRrD8ywdAq5fyEDbvo8JuDDEoh7DTfCxKGRusHEvA2LUUjCDB9bK1uCh/NhRaKZI67GDM1PmtgRQwQcKRc9t1l/Yyso0HkgtvpSP1hyVBnk83FsXw2ZIcaufht8zRkYdJwro3msKiLfrTAaRZAQAySzN7klV8PSQ/4vfehAmy7leMuBjf+A+tQDjEojgCELNH03wL0xqZOdSleEa2H06ju4fJhjStSRxcZXaYWMyDU4F56uSoyH9i2TME2hbF6SbsSy5v2RBxjdFjOi1WjBmkOq1+OhU0Nql586dmGTHD0con0BYz+/8heESUWF9CDHCTKeASQAWg+tKIuqLhQi+a6h7cYG3r4JNPgmg0ng3h3N/+FcyhJpGk9E3KQRYQdepLKgWggikExcgYcdt56r/IeEAFXj5jb+U5jkwSj3nHz2MEwbntzpLRQkdb8n/tzXEKEdjwEla7ltH0ZpFMXy3PkaEOoxNGXvUEk8HV63Kn+Yql/xLvCh/Cb4WWuAui7AsZbiNkKNYKqlLH1bBuExwUUV82ZuJL92hnEoHchTnOLo= 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)(82310400026)(376014)(36860700016)(1800799024)(22082099003)(18002099003)(56012099006)(11063799006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 56uhjYu24TXiQJw2BVkKUmWlV6fjHtfzGgvsxzxYnRaH2Vvt+IbOHYRAWLFSiGaTv9mvlrACqolMwwk6BMR38YCyk9HGwog4YLntgrHu8xY0c5sWTzdXChqrC3uFm55Ww5qSnpNUutFXfdYQhPIkqumdqtL1Tvc5OV8CAwLKVe7hgsYXjyPyCMPBFPtA5arHzg27bTG+iXMMGA6OZ7CjVl1aG1EAYg3JGqqo5QiLtbCIS0tJk+tyqzn7uRmm37q2LtEeXYnofHx0jf+O/L/FPTSbOwYMi/xADcU5guDC6mKqO77i3erPcCXC36fgbbi26M0mJStoVgIs6P3VSWWQfMrpIIEGSpb6J5g7v3jzjnTpEXGUFWGQm3KEaAC//Yb+Ktm0/2Qk4HZsBdvIo5uoHY77KwQ2kKg58cXJQOaEhIOLfYLyhGOOOlGygEzigx1l X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Jun 2026 23:46:49.3630 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 81cef292-8943-40d1-98e1-08dec2938bc4 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: BL6PEPF00020E64.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB7967 X-purgate-ID: tlsNG-c201ff/1780616819-D9B70443-D0A78CEA/0/0 X-purgate-type: clean X-purgate-size: 3846 X-ZohoMail-DKIM: pass (identity @amd.com) X-ZM-MESSAGEID: 1780616849475158500 Content-Type: text/plain; charset="utf-8" Today the inine tracking of the stub page is problematic. 0xcc is used to indicate unused, but it is also a "clear value." A !CONFIG_PV build with smt=3D0 will bring up CPU0, bring up CPU1, bring down CPU1, and free the in-use stub page. Subsequent CPU onlining can write to the re-used page. Each stub page accomodates 32 stub regions, and each CPU uses an offset into its portion of the page. Each CPU used a CPU-specific mapping of the whole page. The virtual address of the CPU-specific mapping is fixed, so it can be used to track the stub page. Remove the actual free-ing from cpu_smpboot_free(). Use the stub_va PTE to track the underlying page. destroy_xen_mapping() would clear the mapping, so replace it with modify_xen_mappings() to retain the PFN in the PTE (with NX set). In alloc_stub_page(), check for a valid PFN in the stub_va PTE. When found, it will be used. This handles re-onlining a CPU. Otherwise the existing logic is retained to use a passed in mfn or allocate one. These paths handle to bringing up new CPUs. If all CPUs for a stub page are offlined, the page will be dangling and unusable. But it will be re-used if CPUs are re-onlined. Signed-off-by: Jason Andryuk --- xen/arch/x86/smpboot.c | 30 +++++++++++++++++++----------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/xen/arch/x86/smpboot.c b/xen/arch/x86/smpboot.c index 7241dba621..11937175a9 100644 --- a/xen/arch/x86/smpboot.c +++ b/xen/arch/x86/smpboot.c @@ -647,11 +647,21 @@ unsigned long alloc_stub_page(unsigned int cpu, unsig= ned long *mfn) { unsigned long stub_va; struct page_info *pg; + mfn_t stub_mfn; =20 BUILD_BUG_ON(STUBS_PER_PAGE & (STUBS_PER_PAGE - 1)); =20 - if ( *mfn ) + stub_va =3D XEN_VIRT_END - FIXADDR_X_SIZE - (cpu + 1) * PAGE_SIZE; + stub_mfn =3D page_walk_mfn(virt_to_mfn(idle_pg_table), stub_va); + if ( mfn_valid(stub_mfn) ) + { + *mfn =3D mfn_x(stub_mfn); + pg =3D mfn_to_page(stub_mfn); + } + else if ( *mfn ) + { pg =3D mfn_to_page(_mfn(*mfn)); + } else { nodeid_t node =3D cpu_to_node(cpu); @@ -664,7 +674,6 @@ unsigned long alloc_stub_page(unsigned int cpu, unsigne= d long *mfn) unmap_domain_page(memset(__map_domain_page(pg), 0xcc, PAGE_SIZE)); } =20 - stub_va =3D XEN_VIRT_END - FIXADDR_X_SIZE - (cpu + 1) * PAGE_SIZE; if ( map_pages_to_xen(stub_va, page_to_mfn(pg), 1, PAGE_HYPERVISOR_RX | MAP_SMALL_PAGES) ) { @@ -990,19 +999,18 @@ static void cpu_smpboot_free(unsigned int cpu, bool r= emove) { mfn_t mfn =3D _mfn(per_cpu(stubs.mfn, cpu)); unsigned char *stub_page =3D map_domain_page(mfn); - unsigned int i; =20 memset(stub_page + STUB_BUF_CPU_OFFS(cpu), 0xcc, STUB_BUF_SIZE); - for ( i =3D 0; i < STUBS_PER_PAGE; ++i ) - if ( stub_page[i * STUB_BUF_SIZE] !=3D 0xcc ) - break; unmap_domain_page(stub_page); - destroy_xen_mappings(per_cpu(stubs.addr, cpu) & PAGE_MASK, - (per_cpu(stubs.addr, cpu) | ~PAGE_MASK) + 1); + /* + * destroy_xen_mappings() clears the PFN from the PTE, but we want= to + * keep it for potential reuse if re-onlined. Pass _PAGE_PRESENT = to + * retain the PFN. + */ + modify_xen_mappings(per_cpu(stubs.addr, cpu) & PAGE_MASK, + (per_cpu(stubs.addr, cpu) | ~PAGE_MASK) + 1, + _PAGE_PRESENT | _PAGE_NX); per_cpu(stubs.addr, cpu) =3D 0; - per_cpu(stubs.mfn, cpu) =3D 0; - if ( i =3D=3D STUBS_PER_PAGE ) - free_domheap_page(mfn_to_page(mfn)); } =20 if ( IS_ENABLED(CONFIG_PV32) ) --=20 2.54.0