From nobody Thu Apr 2 17:11:20 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=1774598188; cv=pass; d=zohomail.com; s=zohoarc; b=bS23t8d2BcArYFCRsjrADYVzttjLDOWIZf7HMRA9j0Nf4HJVaB6yJDtS1jG1W2yFMt49lGOLs4Bla9Mq/KOihMjkBLA49xMFVirlRpSvCM+zsCXdMJMRC35j1YCXx+rqwcI3218cdHtCU2V2nSe2LC6LQwbYqdPzDVa8OAs3a/I= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1774598188; 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=YAfPwcQ9WQkre89jhdMSQOFTVOhS6f3es3Xfay/BKB8=; b=GUV/dh7k6f/jWv0/MGwcyV5xmmG+CSY6FrO+C2wIQEQM5s4EVVz4d6x4E8ZibH7cCa0DBOIvwGwi4Nyi9OJXYBGVqsdoi5Q0OgnqP5v2d22xQsbX1kGFRTj4w1CIPzdr1SzDt3L77Xd6F+umkYXkBJrFhF/3avkSOI1dRY+ZjYI= 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 1774598188869216.92019001667836; Fri, 27 Mar 2026 00:56:28 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1265113.1556192 (Exim 4.92) (envelope-from ) id 1w6231-0001Q1-O3; Fri, 27 Mar 2026 07:56:03 +0000 Received: by outflank-mailman (output) from mailman id 1265113.1556192; Fri, 27 Mar 2026 07:56:03 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1w6231-0001Pu-Jr; Fri, 27 Mar 2026 07:56:03 +0000 Received: by outflank-mailman (input) for mailman id 1265113; Fri, 27 Mar 2026 07:56:02 +0000 Received: from mx.expurgate.net ([195.190.135.10]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1w6230-0001PM-57 for xen-devel@lists.xenproject.org; Fri, 27 Mar 2026 07:56:02 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1w622x-001U1q-Q6 for xen-devel@lists.xenproject.org; Fri, 27 Mar 2026 08:56:01 +0100 Received: from [10.42.69.5] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from ) id 69c63810-5cb7-0a2a0a5109dd-0a2a450599c4-2 for ; Fri, 27 Mar 2026 08:56:01 +0100 Received: from [52.101.85.62] (helo=BYAPR05CU005.outbound.protection.outlook.com) by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2) (envelope-from ) id 69c6380f-5aeb-0a2a45050019-3465553e1339-3 for ; Fri, 27 Mar 2026 08:56:00 +0100 Received: from DM6PR12CA0031.namprd12.prod.outlook.com (2603:10b6:5:1c0::44) by PH7PR12MB9174.namprd12.prod.outlook.com (2603:10b6:510:2ed::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.8; Fri, 27 Mar 2026 07:55:54 +0000 Received: from DS3PEPF000099DD.namprd04.prod.outlook.com (2603:10b6:5:1c0:cafe::68) by DM6PR12CA0031.outlook.office365.com (2603:10b6:5:1c0::44) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9745.22 via Frontend Transport; Fri, 27 Mar 2026 07:55:53 +0000 Received: from satlexmb07.amd.com (165.204.84.17) by DS3PEPF000099DD.mail.protection.outlook.com (10.167.17.199) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.21 via Frontend Transport; Fri, 27 Mar 2026 07:55:53 +0000 Received: from penny-System-Product-Name.amd.com (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.17; Fri, 27 Mar 2026 02:55:50 -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=uNoEnqCNMGfN08G61n00dAavKvL08z0Delr1E2gLDi8QtHiRll6fy6nFRjHsLQpXoFLwHC+embdvi5JoDG57tRq/a1jZE4/IEit7L8qUyvqrjK/K3SIv2UprSiUwJgNoTpSu6XiTcRNcaEMJW/lAc4r0sI00l0xJSaaEFVHafCNfjFNAtg9bPcbrWhqP57cHn3FJNr/3yw/EevZP4+Ca+yqW12jH+WduzV+sTtCu7a57jmHLG8dnK2e5FUc67uYt9oAKMTnaCIID14mxDUBxTYMaiqvap/r8COjO85kAofAp8hIBc1Pfi/h7NRLX1u1AZk8Mmbi+ixRGeVCywwHmmQ== 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=YAfPwcQ9WQkre89jhdMSQOFTVOhS6f3es3Xfay/BKB8=; b=I2Rel786idscsezSDB46Ya8tfyx+y99eXMBzvM4J+SAj6Rb3UMPHo69+JqXUE9zmbNJYy3nP3rXp8Ov1/ZlLnBsAw/+XZ1iEkBasagKr/xAqsYjzmraIqGO1bl0wdR/rFZ0M1G5GKOnlN7mB5YGRxjeU/nLBTh+2pbpwjk8mgwgwFTds0cJ/AjKsi8OLNE/lN902hcpaTn6biJUB9ViwKxDBvvdr0TsQm95j4rYUqB/2mOX4Pyd3m/TjpmcXOC4WyMYW6vZKzj+rUvxQnvrJtSJ8obg7p8pTcvb92x1qoeYb1+TRq0C1i/YbRod5S619iyLk1U4SitYFwMDQPGY7Jw== 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=YAfPwcQ9WQkre89jhdMSQOFTVOhS6f3es3Xfay/BKB8=; b=add8h5DK7EnfMbTLPQm1+DbYu7NEBy7JJskCBMZev3ClIeCa34l6fhC4CZOz/P//TBwXdUd09dXHN8e9kzak7kUW2YamRO+9Glbg1OJv4N46GTd05hWJXaN/cRT/13wEas6IJ37bEFbwpA09pdGAdICjEtFkqjEfVTW7k4TNvQU= 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: Penny Zheng To: , CC: , Penny Zheng , Stefano Stabellini , Julien Grall , Bertrand Marquis , Michal Orzel , "Volodymyr Babchuk" , Penny Zheng Subject: [PATCH v1 1/3] xen/arm: generalize per-page GFN storage beyond xenheap pages Date: Fri, 27 Mar 2026 15:50:23 +0800 Message-ID: <20260327075025.3008606-2-Penny.Zheng@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260327075025.3008606-1-Penny.Zheng@amd.com> References: <20260327075025.3008606-1-Penny.Zheng@amd.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Originating-IP: [10.180.168.240] 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: DS3PEPF000099DD:EE_|PH7PR12MB9174:EE_ X-MS-Office365-Filtering-Correlation-Id: 8fc710ff-bd1e-4720-6a11-08de8bd64561 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|1800799024|36860700016|376014|22082099003|56012099003|18002099003; X-Microsoft-Antispam-Message-Info: EsNfP2mNFa8Tdtg52bILYkE53UStOkl/y+hFLXK1wC42iW+lNwWlafhRTKb2J1puWfhH48C7POwIQpF/qA9qSyNrziadplzDp9nKKv0S1ahmzdxFPRzclhxcHt7aHmxgAnldpb4rBuU075bzf0C6sZ3DGaPC5gxzb3p5el6MATjueFlu4tA2bko1JdnEuRbrvz7UKGr4JBp9QrVvQsb6TJZ98WPaWF4+NLB7u4DuvhJ6ceJmjv+hUKlHp3+STRJyGgKIgWKUsQHbyIM0hTy7v+wvJ1/MIDRG4e8/yBk546OT0hk6Avl2dAp0CUmbK9XoaENmKTpbeAnJ6yJB36ifkg3Js7yryb6e7KEagL2nxvfeszOvoC2RSwMVr8+q0KRLCY1FAera7G2EuueNDk9tX3slnFgGn9ADEP/Blnbn6RC6xoWJQQC/1e8sxh6rNJNfkBgK0OeD9GEjLj1yh/vhqbFhAs5svS0hcnJCBPlJEfzpZ4ARN95o28DlC7O2F9byaLAKXFPjCo/1f+zrJpzE7rP8bKnzrWrywx5thNTkY1peZwnbFhUzWGRVqQzMTqTDIT971qPTAnW4uVxuCs6QpMN3l1ynsJt6VHikF0QxxESkryYZyUXTlFPBp15db/TefQcMYpNl7JYq+61h+7NDzCN91BSscGEKnkZtq8snFvptJf/6f/XPwpAAFICrl71ySWVoM5ZJCL91zJUKVN4MybqLYAa4B/mqkTE4LVgi0MvNJX7LaWyt8IzcQAnp2hdi1G154FfZcjawNp3ImXryOg== 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)(1800799024)(36860700016)(376014)(22082099003)(56012099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 4f83CXG7K+yjcPrkVabmky5LMIMSIBD3vUmnG+YA6bwkddrpMRwf/8MW+Xa6T2NYLnDOH6dP9GDSVVN9/BEhXEvYt3xXHQOmR1ASgHXMwxK0lJWLlqBoZ+H19Boyn88dYTg1Z+RH5m99OVNMZyZbn1xwjoCXI2Kp9ldobmq61+VquFGFVxevDhBqbCalM6uV892/YoCiv763uJ1gIhb8+Lz/U0BbxBAs3M4uh4Gm6/Q9y+TR1wXKVyY/VE4840PBEo1UAGReO8G2XO3ioDIoLnat3lKh3NI+4qA98iKksulAYfkwKCUaWpHMRRdhZa4tW5UnkzW6OWcp31AE6B/UNYu7dAVPLCUs7dJx1I273T1iDiiSyXRIU6bPbjcEVmjuTgTmulJgOvb46XYhTJqi7XwonNMj3CyIn9PDDsP95Lq3C/t/At4yhPKadVzZ4Z2b X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Mar 2026 07:55:53.5689 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 8fc710ff-bd1e-4720-6a11-08de8bd64561 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: DS3PEPF000099DD.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB9174 X-purgate-ID: tlsNG-c201ff/1774598161-81156488-BDD22C9E/0/0 X-purgate-type: clean X-purgate-size: 3611 X-ZohoMail-DKIM: pass (identity @amd.com) X-ZM-MESSAGEID: 1774598190540158500 Content-Type: text/plain; charset="utf-8" As preparation for fixing mfn_to_gfn() on ARM, we extend the existing GFN field in page_info's type_info to be usable for not only xenheap ones. Another usage will be introduced later for stolen pages in memory exchaging. Introduce general-purpose page_get_gfn() and page_set_gfn() helpers that read and write the GFN stored in type_info. The old page_get_xenheap_gfn() and page_set_xenheap_gfn() are retained as thin wrappers with their xenheap ASSERTs, so all current callers remain unchange= d. Also introduce PGT_INVALID_GFN as the general sentinel, with PGT_INVALID_XENHEAP_GFN aliased to it for backward compatibility. Signed-off-by: Penny Zheng --- xen/arch/arm/include/asm/mm.h | 37 +++++++++++++++++++++++------------ 1 file changed, 25 insertions(+), 12 deletions(-) diff --git a/xen/arch/arm/include/asm/mm.h b/xen/arch/arm/include/asm/mm.h index 72a6928624..d1873ec212 100644 --- a/xen/arch/arm/include/asm/mm.h +++ b/xen/arch/arm/include/asm/mm.h @@ -113,18 +113,21 @@ struct page_info #define PGT_count_mask PG_mask(3, 3) =20 /* - * Stored in bits [28:0] (arm32) or [60:0] (arm64) GFN if page is xenheap = page. + * Stored in bits [28:0] (arm32) or [60:0] (arm64) GFN if page is xenheap = page, + * or stolen ones in memory exchanging. */ #define PGT_gfn_width PG_shift(3) #define PGT_gfn_mask ((1UL<u.inuse.type_info) & PGT_gfn_mask); =20 - ASSERT(is_xen_heap_page(p)); - - return gfn_eq(gfn_, PGT_INVALID_XENHEAP_GFN) ? INVALID_GFN : gfn_; + return gfn_eq(gfn_, PGT_INVALID_GFN) ? INVALID_GFN : gfn_; } =20 -static inline void page_set_xenheap_gfn(struct page_info *p, gfn_t gfn) +static inline void page_set_gfn(struct page_info *p, gfn_t gfn) { - gfn_t gfn_ =3D gfn_eq(gfn, INVALID_GFN) ? PGT_INVALID_XENHEAP_GFN : gf= n; + gfn_t gfn_ =3D gfn_eq(gfn, INVALID_GFN) ? PGT_INVALID_GFN : gfn; unsigned long x, nx, y =3D p->u.inuse.type_info; =20 - ASSERT(is_xen_heap_page(p)); - do { x =3D y; nx =3D (x & ~PGT_gfn_mask) | gfn_x(gfn_); } while ( (y =3D cmpxchg(&p->u.inuse.type_info, x, nx)) !=3D x ); } =20 +static inline gfn_t page_get_xenheap_gfn(const struct page_info *p) +{ + ASSERT(is_xen_heap_page(p)); + + return page_get_gfn(p); +} + +static inline void page_set_xenheap_gfn(struct page_info *p, gfn_t gfn) +{ + ASSERT(is_xen_heap_page(p)); + + page_set_gfn(p, gfn); +} + #endif /* __ARCH_ARM_MM__ */ /* * Local variables: --=20 2.43.0 From nobody Thu Apr 2 17:11:20 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=1774598177; cv=pass; d=zohomail.com; s=zohoarc; b=SDfVtqMgyBU2V9IW+NbWiNr5dWkdsbqQ6+qeCQS3tgYt65XGLKMXOA1vnPKOeJo7rBREB96KQrkpBGTq0H/Sg0lXexbgr3674cVgeR1HsGgTbdMCDmTajALDR6brUz3vLY8jXuxWceavUV12AsfgrxD2OP2+6zHEX/6Gu2t6PVA= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1774598177; 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=FNsX0tz7KlxvUQL2XaR7OMvrzRJaltI17tS9Ud2WDAA=; b=kVtG9RyQiRD8i0rlf+Zgbz+L4sez1uiwNFfuHwGe6PHTv31x5FYmleTENQa0ttnxuC+Ls/Zkg5SF7shg6nmBkP+Mn13dtDxD96iHBAr3NEWiQVovdzXFpEe75WyfCflfvVzHjGpYAvLLPi4aUYOtbhlOVJBOYUiaWODQpPSJ3Ys= 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 1774598177531692.4895658443671; Fri, 27 Mar 2026 00:56:17 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1265114.1556200 (Exim 4.92) (envelope-from ) id 1w6232-0001e1-VF; Fri, 27 Mar 2026 07:56:04 +0000 Received: by outflank-mailman (output) from mailman id 1265114.1556200; Fri, 27 Mar 2026 07:56:04 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1w6232-0001du-RL; Fri, 27 Mar 2026 07:56:04 +0000 Received: by outflank-mailman (input) for mailman id 1265114; Fri, 27 Mar 2026 07:56:03 +0000 Received: from mx.expurgate.net ([195.190.135.10]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1w6231-0001Pc-7t for xen-devel@lists.xenproject.org; Fri, 27 Mar 2026 07:56:03 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1w6230-005b5O-Jw for xen-devel@lists.xenproject.org; Fri, 27 Mar 2026 08:56:02 +0100 Received: from [10.42.69.1] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from ) id 69c63812-2eae-0a2a0a5409dd-0a2a4501a130-0 for ; Fri, 27 Mar 2026 08:56:02 +0100 Received: from [40.107.208.21] (helo=PH0PR06CU001.outbound.protection.outlook.com) by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2) (envelope-from ) id 69c63810-6400-0a2a45010019-286bd015fa4b-3 for ; Fri, 27 Mar 2026 08:56:02 +0100 Received: from DS7PR03CA0185.namprd03.prod.outlook.com (2603:10b6:5:3b6::10) by SAWPR12MB999140.namprd12.prod.outlook.com (2603:10b6:806:4e2::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.8; Fri, 27 Mar 2026 07:55:57 +0000 Received: from DS3PEPF000099DC.namprd04.prod.outlook.com (2603:10b6:5:3b6:cafe::a3) by DS7PR03CA0185.outlook.office365.com (2603:10b6:5:3b6::10) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9745.22 via Frontend Transport; Fri, 27 Mar 2026 07:55:57 +0000 Received: from satlexmb07.amd.com (165.204.84.17) by DS3PEPF000099DC.mail.protection.outlook.com (10.167.17.198) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.21 via Frontend Transport; Fri, 27 Mar 2026 07:55:57 +0000 Received: from penny-System-Product-Name.amd.com (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.17; Fri, 27 Mar 2026 02:55:53 -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=zC7SEEq8vWMuIDXfUO6udV4HiArIfhki+36Log5uAKhImzKgYV90Ok3uj3zI4IUcPCAY56/taL4+zFkCLjRD2NYaqa3QM4jYmkIDvIhs8htOYZgUCAMn/qqNBHjqsK9GKqn1eSb+n7bYAVTeKzpyaE/NfIeHA6+L9h/8FiYKxouV17UXLhtzhVQKTceY7b60rMBs8mn8Jyt+eL0XTgui7pFVjV/xjT2O/fT0c3LZUJaCrD4kTXrlPz2ADW6qVmNwFv1kNezLu7UCDtjRwEK5lZwif7K8WUwmQ7x7TI3L3V9etKPTcMSEaL185K81M9SlqmxYykLm6SlmbmmtjeL7Tg== 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=FNsX0tz7KlxvUQL2XaR7OMvrzRJaltI17tS9Ud2WDAA=; b=XnZ/PWz+cBLW9r1WryD3oMmzYX2IEDIKBHx+bEO+Ys5VyhWOHPjVrm64ZDf7/3lA5iTJnnUQaOyi7+Is5lsyc6na6fCHVB97A5XClKHzjjwk22oGGJHnRfVi9snrePBBQLEktfBPRjmGaI3PdpiHikTclwr5ChRHdQy7qfpwPQ6lOsDNIMdTq7vjbv/vfLDU4lf9e4uOLijV8bTBcsUzjCDd13ZolDxjIDMnHr9iptjzxFzjDWf+rLKWUZav2vdYLvaqsUe0cNxkbB6ygiHxeRsO4ORJ9DsorlxaHVxiesKx/x7Nmfasu/lgPxsJR5sFsgenKDnZx+d+NJiO08UlJQ== 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=FNsX0tz7KlxvUQL2XaR7OMvrzRJaltI17tS9Ud2WDAA=; b=B2b50Wg0e0a9j9P2GwUQN1CRcuFyVI2X776RCK6okwsE390SiypyNBuhE/gV2aS8Ydt0p+JTLhJv2d/bmyZSPbg5+4FwUsygCF4ckDJU6gVsOCzcukDSs3qcEI05Bz+khLaQji8iTHhPOPtzUsawj0LVv/ifRZOPpcW9/OYy9k0= 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: Penny Zheng To: , CC: , Penny Zheng , Stefano Stabellini , Julien Grall , Bertrand Marquis , Michal Orzel , "Volodymyr Babchuk" , Andrew Cooper , Anthony PERARD , "Jan Beulich" , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= , Penny Zheng Subject: [PATCH v1 2/3] xen: introduce shared_info_to_gfn() Date: Fri, 27 Mar 2026 15:50:24 +0800 Message-ID: <20260327075025.3008606-3-Penny.Zheng@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260327075025.3008606-1-Penny.Zheng@amd.com> References: <20260327075025.3008606-1-Penny.Zheng@amd.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Originating-IP: [10.180.168.240] 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: DS3PEPF000099DC:EE_|SAWPR12MB999140:EE_ X-MS-Office365-Filtering-Correlation-Id: cd6f8299-73fd-4ca5-5474-08de8bd64775 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700016|376014|82310400026|1800799024|56012099003|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: xYmsDNwZFSenjicddY0Wln64GqMWPMXmkMfFANZkyp3fVTpRyUvjrIiyNTJM8ByjDWFgocA0DzL+cRkP/CPdGd1YD92a3Mer7fVjJvEtE7QE9pwmaZQFOOF664rWrJEKbqQFfLARZKqc9xCfmSxO20IdAWwxhWhcqOdYdB5c16s5/6EqgRa5gwMx3sq+P7gqWc33KGWth0q6646wJEfNmLgqSN2043dSffRlrldfb5OBo0I5pwkbtA0Epp44b6ZLhFPi8w76yGEsaMCjs05xQLLviRvQd/82B8uW91sdKStu+40KePn0jRoXAmRdYFRrufuOwDwzmyvDIsdVaopzwjE6nCs+G3vp5xgldiLwVRIBAbUVfyWkrJMWizMzZhyQkqGQe6bfUuT2DmhbWp8rNw08hY98mIKT4gprusky+spsy39Qs/mW9OMXYhxb6mmqiY2pTFmrU7CNv3wdmDO8ahipkL3a8nmzNGsE4YNgBHZo/9LWvGa4K+nFraE58I+FLemg/bdINX/oK2Ro4d3gJEB0ZwQhrJ7/2Ipvb1qIvChmA1vBYdzjaBZy9VtqNCMn1bASGf0uc1ULDLTJ4CiN49Bi4RRtPBBd7lvUs1q1Gj/XXyrGI1k1s3Kmf+Jx2UjgYFIJEYJe6MkzCnA4gJaXm2PsNXhBhyDZOA0q7y0LZFfddYWmiOTCcCiRik/PTZAArnj4MrbfTtC10e09L8whVaWH9wFVScnN77yvOSGHUd6xq++SnxOqZ/yrJukphmOJ8ancOakr8T49WXzYHFB9wQ== 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)(36860700016)(376014)(82310400026)(1800799024)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: A8VTo/pORTP+2pYrrybf9YerEAoonv7n36O3olGpMIFEwgB8794FhGQbqqe+YhATuqTUYSSIZxkXXe93IBxocspCL4FskCDEdlmGoFYlDx7l1zA+NrMr5n81ncvodb7b6CIxPFQV35atiuKOnaXaZ/2ivybZzUFbz/8FK1zGw3DTXPJtxARL2EON2qxuLkD3Sa1lctIZKIuX+l95rOIvK+cwi2o0Epnu4A4TtM6Gs8TpfATl04mFyXVkNgY8U7ovXobI/TcSucvgvq++M+MFtl5aWumaoU3GDqTszrhQeCWhFaGn892vYu1CxbqHRWjNK8GRX7jzue/wOqe/Nb4p83cf3wAWgMM0K573ubPCjjM9/OaY0rDh/pxExhuOf7yUMy1KHeOfViEIK982IcdXY6ieB4MiYkjZTW9fH3Xj7M+j2Rhm04RP/tSQjww/GCg7 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Mar 2026 07:55:57.0627 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: cd6f8299-73fd-4ca5-5474-08de8bd64775 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: DS3PEPF000099DC.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SAWPR12MB999140 X-purgate-ID: tlsNG-d62444/1774598162-48A14DF3-E19205C8/0/0 X-purgate-type: clean X-purgate-size: 2550 X-ZohoMail-DKIM: pass (identity @amd.com) X-ZM-MESSAGEID: 1774598178629158500 Content-Type: text/plain; charset="utf-8" On ARM, mfn_to_gfn() is a simple identity macro that actually does not retu= rn the correct GFN for domains other than direct-map ones, so getdomaininfo() = is returning the wrong shared_info_frame on ARM. Introduce a common shared_info_to_gfn(d) macro to output correct GFN for bo= th ARM and x86 in getdomaininfo(): - ARM: uses page_get_xenheap_gfn() to read the stored GFN - x86: simply wraps the existing mfn_to_gfn() solution which consults the M= 2P table Suggested-by: Alejandro Vallejo Signed-off-by: Penny Zheng Acked-by: Jan Beulich --- xen/arch/arm/include/asm/mm.h | 2 ++ xen/arch/x86/include/asm/p2m.h | 3 +++ xen/common/domctl.c | 3 +-- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/xen/arch/arm/include/asm/mm.h b/xen/arch/arm/include/asm/mm.h index d1873ec212..8d61b74e4f 100644 --- a/xen/arch/arm/include/asm/mm.h +++ b/xen/arch/arm/include/asm/mm.h @@ -308,6 +308,8 @@ struct page_info *get_page_from_gva(struct vcpu *v, vad= dr_t va, /* Xen always owns P2M on ARM */ #define set_gpfn_from_mfn(mfn, pfn) do { (void) (mfn), (void)(pfn); } whil= e (0) #define mfn_to_gfn(d, mfn) ((void)(d), _gfn(mfn_x(mfn))) +#define shared_info_to_gfn(d) \ + page_get_xenheap_gfn(virt_to_page((d)->shared_info)) =20 /* Arch-specific portion of memory_op hypercall. */ long arch_memory_op(int op, XEN_GUEST_HANDLE_PARAM(void) arg); diff --git a/xen/arch/x86/include/asm/p2m.h b/xen/arch/x86/include/asm/p2m.h index 3a5a5fd43c..725403b28f 100644 --- a/xen/arch/x86/include/asm/p2m.h +++ b/xen/arch/x86/include/asm/p2m.h @@ -582,6 +582,9 @@ static inline gfn_t mfn_to_gfn(const struct domain *d, = mfn_t mfn) return _gfn(mfn_x(mfn)); } =20 +#define shared_info_to_gfn(d) \ + mfn_to_gfn((d), _mfn(virt_to_mfn((d)->shared_info))) + #ifdef CONFIG_ALTP2M #define AP2MGET_prepopulate true #define AP2MGET_query false diff --git a/xen/common/domctl.c b/xen/common/domctl.c index 93738931c5..284926aa61 100644 --- a/xen/common/domctl.c +++ b/xen/common/domctl.c @@ -104,8 +104,7 @@ void getdomaininfo(struct domain *d, struct xen_domctl_= getdomaininfo *info) #ifdef CONFIG_MEM_PAGING info->paged_pages =3D atomic_read(&d->paged_pages); #endif - info->shared_info_frame =3D - gfn_x(mfn_to_gfn(d, _mfn(virt_to_mfn(d->shared_info)))); + info->shared_info_frame =3D gfn_x(shared_info_to_gfn(d)); BUG_ON(SHARED_M2P(info->shared_info_frame)); =20 info->cpupool =3D cpupool_get_id(d); --=20 2.43.0 From nobody Thu Apr 2 17:11:20 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=1774598191; cv=pass; d=zohomail.com; s=zohoarc; b=Flhy2Oj2Tnjr38EvELgQY0Bb9ySTmwMSitGR2IuEJTHeXAMqew7hz1S+xig0yyEL8lGBxWMeY84+zw+H9f9JRf7cDr59QKw98JnVb+0gECWNJYuiLC25C4+1c1MYuFUnHw2/QG7IGHb12GZI5npbsfGTKf+k4vFvkYBLb2N/y/o= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1774598191; 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=l83BYNp+aMnzNw6sbx4zGflMnyM8f979yRPcRxeM/Wc=; b=bTwRqR44KfOXtFhikJVrxL2gedy0Fu4hD/ZlY8ayXPR+Nl94hZiEWd93/J3rX9Cngf2isLC9JtwrqchEExAPLjR3jJAzvEfSe6ffd5HyNheV5BhS9QP9bPTGP7cByz1TKE0alJrzklNu3CKKqMB1eaZyhOu5dQJbI6sIGhwVMgg= 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 1774598191180991.2415929725494; Fri, 27 Mar 2026 00:56:31 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1265115.1556209 (Exim 4.92) (envelope-from ) id 1w6236-0001vF-E0; Fri, 27 Mar 2026 07:56:08 +0000 Received: by outflank-mailman (output) from mailman id 1265115.1556209; Fri, 27 Mar 2026 07:56: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 1w6236-0001v5-9W; Fri, 27 Mar 2026 07:56:08 +0000 Received: by outflank-mailman (input) for mailman id 1265115; Fri, 27 Mar 2026 07:56:07 +0000 Received: from mx.expurgate.net ([195.190.135.10]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1w6235-0001th-6J for xen-devel@lists.xenproject.org; Fri, 27 Mar 2026 07:56:07 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1w6233-001U1q-0Q for xen-devel@lists.xenproject.org; Fri, 27 Mar 2026 08:56:06 +0100 Received: from [10.42.69.5] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from ) id 69c63810-5cb7-0a2a0a5109dd-0a2a450599c4-16 for ; Fri, 27 Mar 2026 08:56:06 +0100 Received: from [40.93.195.1] (helo=SN4PR2101CU001.outbound.protection.outlook.com) by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2) (envelope-from ) id 69c63814-5aeb-0a2a45050019-285dc301fdaa-3 for ; Fri, 27 Mar 2026 08:56:06 +0100 Received: from DM6PR12CA0001.namprd12.prod.outlook.com (2603:10b6:5:1c0::14) by BN3PR12MB9593.namprd12.prod.outlook.com (2603:10b6:408:2cb::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.20; Fri, 27 Mar 2026 07:56:00 +0000 Received: from DS3PEPF000099DD.namprd04.prod.outlook.com (2603:10b6:5:1c0:cafe::a) by DM6PR12CA0001.outlook.office365.com (2603:10b6:5:1c0::14) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9745.23 via Frontend Transport; Fri, 27 Mar 2026 07:55:59 +0000 Received: from satlexmb07.amd.com (165.204.84.17) by DS3PEPF000099DD.mail.protection.outlook.com (10.167.17.199) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.21 via Frontend Transport; Fri, 27 Mar 2026 07:56:00 +0000 Received: from penny-System-Product-Name.amd.com (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.17; Fri, 27 Mar 2026 02:55:56 -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=blHN6y9jzhIuJGYzhqPjqNlrZAPN/fD+ljVWlyYBeQKvySE1ePd9STgaggr/qq/GZBzNpJS4LFHa1B0rIQIZS/Zw+k2pmgUA43XVCAMPGfRn+qqjIVvIlckbPHsqqZ6OT3sEprIlNcoCHWbCsrmj9gakT0SzPT4LBhSFHzeZwa109lPmPCsTr1agYMdoD01AanoJXGnH3Db7VuU/LvTwDM8EUemti+Gg/PrrusS+ysYrMyxCFMM56LaM2+jax6P0a+L9OtMoH0xyqpg3nzFGMJNHGpa7A7cQI1qXExe96JrWQP33id75fXtpwrhzfNajBKPHpO0vlLs08x2qwdFvCw== 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=l83BYNp+aMnzNw6sbx4zGflMnyM8f979yRPcRxeM/Wc=; b=CLhB4GCjRCB3cnQjZ6SL81WyE0IJezNKN5f867ZxoyOUmUHOCjyhVrax0RW4MF1nKZKZEQiCRM2xjHAOcaGupEONkIRou1qrHk55rzICrtdMp+w6GBVDWTen6/f1K4vjpDH7Qp/MVPUjkXnpgoTxPi1xzDMcJ745OMfKOS2sCkKD7XReiotBBRVJ9NE13KNObbwnHCp45b1VESJfCcmwgb+0icSR+iVhkWrf8g3X2IyYqdxrrCXjv6GTQVlAmru8zSD9LIjFKg0dCkWtcABRdEklKAGoWAgrdOsMbpPBcPsD4SLDpjzN6R7beT/3fFP//GcC9c94E57kta4hb1G6Jw== 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=l83BYNp+aMnzNw6sbx4zGflMnyM8f979yRPcRxeM/Wc=; b=P1x2hj4Ruelvo/clAEPWhYWebSiVY5PeI+9cCOaT1Q0DDq7nKOAXhNxd6zyZYLkxbT1BPJo1WRATYbLknIqxBYp9oab7PjrQPzk2FrTskvhTjZtZozAT6KJTLy0d0s3UkQwFW7VALzlAeUo2EnKI5a9lXTel6Ag0FGl6cNgbDso= 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: Penny Zheng To: , CC: , Penny Zheng , Stefano Stabellini , Julien Grall , Bertrand Marquis , Michal Orzel , "Volodymyr Babchuk" , Andrew Cooper , Anthony PERARD , "Jan Beulich" , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= , Penny Zheng Subject: [PATCH v1 3/3] xen/arm: fix mfn_to_gfn() usage in memory_exchange() Date: Fri, 27 Mar 2026 15:50:25 +0800 Message-ID: <20260327075025.3008606-4-Penny.Zheng@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260327075025.3008606-1-Penny.Zheng@amd.com> References: <20260327075025.3008606-1-Penny.Zheng@amd.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Originating-IP: [10.180.168.240] 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: DS3PEPF000099DD:EE_|BN3PR12MB9593:EE_ X-MS-Office365-Filtering-Correlation-Id: 030b24cd-9b52-4120-8851-08de8bd6495b X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|82310400026|36860700016|376014|56012099003|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: XGCfPDFJjj0q+KsZOsa9QmBSzxUgwYzTe4zabtLozCVEGSV3JIodl9KbNBATcu3H6NdQw9DaPUhYo0OnHBUEILX7Smgf6DBJWPZrVlgePxtsTn3RNdgbSfDazueQ9JtHsBQdI6Zzf+MGT096aSiwkfrbTD3/5beMTpXou/U4e7drSotSTzgtp9Yt0O6bkIZhY7N0DGC+DPmKeWwGDaEcD0ld9fngIp3ngJK9N6FAXGMddzqjBuy6vCg5RTsZOgAC7hhnPbakB2g8+a2P+0jrujxax9q0oXYSddLqhw0Phc3WXga4CXGoWaHnz0pOsq3Doa2SWY8rV3+HwNt7mvM1T21fhUtqthXhmgAQX0dX+PbMBJTujzeUwfdBNqxgWXXVeciqt5PmwNMh7dCrmid80afoUC7B48twLR1Uq+kNyJ4evExv4wNDXJubKAH4m6Ie5WxeImgeVWYaeTqfNQWhBKBcfKacHikUNLBMNwjaj+Pq158HsdXFU5owIoLMW64KwgECsFES0tWcjpzK00UAku+B1rqqk7SfvHdfHE7kpMeiEHCmWqRiY5p1CFyU4ZuwaOp8qwcB7qy6QoMX1YlyHtUBlk6YYHHY4eE1zeQbPkb25FF8/q/z/dEefvDt0DsX9Mp5ocvyIfDbFtJ/wNN9eICxUmZHZdD9xy+/Yyv0NjBeAlECpid1dAuEfHb8CoTmBYNT64UlThOs6qafzqA/VBUASnghmFaLQKH85KsuBEnV59ede8lDW3UncBgkIjird6HmoVOYIe+vLQpaFoIY0A== 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)(82310400026)(36860700016)(376014)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: QPCjrOfrHFcz3+dQDJc8dYBxXaM8THu72CB3MWgm1q2qdmRa3jzFcdyiYiJ/THNF38+ZhGHB0asMY9zLfDQ4mrWyJO8CCCzMqXTOfYaUmiRPZMLt9U0FxnWdH2oar0ni5EN/ZGnTXxqANCVCNU+c2AZZtHR2EiBf/xrI0Mz9i6y5vIvAchji8G6/CXPZuD/yAXffpXNKq8QRlkNkj4D5Mdo5gmZGQLTm06yrQsWeq36v5C+IJaWShZ4+58/1J3Zn4tmsvsL3/Gi8Ujodg+d5Kd6sd7ysIwnonsgq12ZY11L39VwRcbHOqBMYHwaUXAY9TNqUGVsz8Ag77O9QE1XOmIn74+/4EVc9+Xntd5gNBFC5vPI+s52jkUFDId49WLdx9iqX2XZ1zl1A2dMj9qZ/D2H5tSrJo15esqkPyzdIbiJTIHJ7wTIz0P5TPfv9RHZE X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Mar 2026 07:56:00.2670 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 030b24cd-9b52-4120-8851-08de8bd6495b 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: DS3PEPF000099DD.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN3PR12MB9593 X-purgate-ID: tlsNG-c201ff/1774598166-80769488-C032C8C8/0/0 X-purgate-type: clean X-purgate-size: 2523 X-ZohoMail-DKIM: pass (identity @amd.com) X-ZM-MESSAGEID: 1774598192465158500 Content-Type: text/plain; charset="utf-8" On ARM, the only callsite of mfn_to_gfn() is in memory_exchange(). Although memory_exchange() is actually not reachable on ARM because steal_page() alw= ays returns -EOPNOTSUPP. We still need to fix it here to ensure correctness once steal_page() is implemented for ARM in the future, and avoid propagating broken usage. Fixing it with the following steps: - Recording the GFN into the page's type_info via page_set_gfn() at stolen = time - Retrieving it via page_get_gfn() at consume time instead of mfn_to_gfn(). With the only call site removed in ARM, mfn_to_gfn() macro is no longer referenced and could be removed in ARM. Signed-off-by: Penny Zheng --- xen/arch/arm/include/asm/mm.h | 1 - xen/common/memory.c | 11 +++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/xen/arch/arm/include/asm/mm.h b/xen/arch/arm/include/asm/mm.h index 8d61b74e4f..14cb3c3dfa 100644 --- a/xen/arch/arm/include/asm/mm.h +++ b/xen/arch/arm/include/asm/mm.h @@ -307,7 +307,6 @@ struct page_info *get_page_from_gva(struct vcpu *v, vad= dr_t va, =20 /* Xen always owns P2M on ARM */ #define set_gpfn_from_mfn(mfn, pfn) do { (void) (mfn), (void)(pfn); } whil= e (0) -#define mfn_to_gfn(d, mfn) ((void)(d), _gfn(mfn_x(mfn))) #define shared_info_to_gfn(d) \ page_get_xenheap_gfn(virt_to_page((d)->shared_info)) =20 diff --git a/xen/common/memory.c b/xen/common/memory.c index 918510f287..5c462c302d 100644 --- a/xen/common/memory.c +++ b/xen/common/memory.c @@ -814,6 +814,13 @@ static long memory_exchange(XEN_GUEST_HANDLE_PARAM(xen= _memory_exchange_t) arg) goto fail; } =20 +#ifndef CONFIG_X86 + /* + * Record the GFN in the page's type_info, + * so that we can retrieve it later when consuming the pag= e. + */ + page_set_gfn(page, _gfn(gmfn + k)); +#endif page_list_add(page, &in_chunk_list); #ifdef CONFIG_X86 put_gfn(d, gmfn + k); @@ -849,7 +856,11 @@ static long memory_exchange(XEN_GUEST_HANDLE_PARAM(xen= _memory_exchange_t) arg) gfn_t gfn; =20 mfn =3D page_to_mfn(page); +#ifdef CONFIG_X86 gfn =3D mfn_to_gfn(d, mfn); +#else + gfn =3D page_get_gfn(page); +#endif /* Pages were unshared above */ BUG_ON(SHARED_M2P(gfn_x(gfn))); if ( guest_physmap_remove_page(d, gfn, mfn, 0) ) --=20 2.43.0