[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[RFC PATCH v6 22/43] arm/p2m: Introduce p2m_is_{hostp2m,altp2m}
- To: <xen-devel@xxxxxxxxxxxxxxxxxxxx>
- From: Rose Spangler <Rose.Spangler@xxxxxxxxxxxxxx>
- Date: Mon, 20 Apr 2026 17:31:45 -0400
- Arc-authentication-results: i=2; mx.microsoft.com 1; spf=pass (sender ip is 40.93.1.78) smtp.rcpttodomain=amd.com smtp.mailfrom=elektrobit.com; dmarc=pass (p=quarantine sp=none pct=100) action=none header.from=elektrobit.com; dkim=pass (signature was verified) header.d=elektrobit.com; arc=pass (0 oda=1 ltdi=1 spf=[1,1,smtp.mailfrom=elektrobit.com] dmarc=[1,1,header.from=elektrobit.com])
- Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 213.95.148.172) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=elektrobit.com; dmarc=pass (p=quarantine sp=none pct=100) action=none header.from=elektrobit.com; dkim=none (message not signed); arc=none (0)
- 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=JXO5psDHXrr2lWhpVfZGIS9NlsT4Gk+n8+O5j94oxLM=; b=ydpv2oTCLuTMyRUxeqVO6iUKbz++DJRyfnePpaFUkhUt89ysMsIvSJLsrd12Mt8kCdEVV5psZ7PY0T4UXLX632FeTzyqWAUJyMTrVx7oc7ujWoa37rdzqQS6vo9HRG0gH4SKL6xSItqeBXraY6DgSOmGxKM6sEDVzZjoDDcWQfyxdD1et+4G9LXDTiHBxEHLLzMkcKrXkaIw9H+Yi2P1RCKBuUhpFVIzyv7RQinYqnahgzJrv8Tp47ea7FmSwBbEIMTwoQpvBwVYz6hlpSK8WRKkNk+xybNE6tKb2DVTDcG8DKjzMNNNr6sJE37dR19HPMH9qs/ljmU38+/TlpW/xg==
- 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=JXO5psDHXrr2lWhpVfZGIS9NlsT4Gk+n8+O5j94oxLM=; b=XbVHF/1t89PPV7s/f13APAFMVD26cPjHnKdY2FXag08u1VL8k0GkImXkkZxsruadFT4qMh82oXf/CXyhBS3Dbjwf8W8IiTyKtL5P9DVhNJ+CO9buelJ0i58lr7Sy1muiiUEwXL+3jCQIC18upR/yiggoFdLonl2ie+fwox22+4ppSFCK0etWHY5/kqhwz+AYw8FH/FkgzIDTKV2SNZwFZkH9RYtSEcBc1lApPsa4yNyRg+Mt4+Dz4nAuaZ9k9nQT2uvJUU1jKsjtg2HI5hGhUMEy7AS/JjZHmgG12Gndty1bL6/n00mKmeSI8z+xk2GVaBYmN7xOm1sbvKpiWUTkMQ==
- Arc-seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass; b=cgwoN8Tg3wUIWSINg0VhM7x1RpaoYgeQieY/FEADdO4YstX8uGamwQG0RhkYtxUZawrgoQk/+2HQ1uNrauP1qK1GeUrHMbKBcIe18xkW0YjQ6Ax0X8HYdjqOExOu+frwIOhcJNk/ihLd05JZM2JE9WNf8B/Sc1KbXZ3hKmzacLTFHv/Eew/YUqey66/1ME6IBqFvYkItp32lW3RghxvIQ/ljioUWMfVkAz1iQ+BkZx/OdxCPsvhI0QyPj8rftFqDBTUPJjWDhwVRmih5YuzHWR7/b+QEkRNdp6GTHexSeRvYfNbs4CvqRb9kqOaRM/RHmm+zmoTZp01YaUn0RD2mhA==
- Arc-seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=EyTwRyCbfyqSEktAEResMYyw/Si+idXUGjf0qIlXhx9i6ZM4j6GumJ0hdWoR3baeDHgrDJeL95qdFPtHO3/DUzU/IAwRBaPq0AoDGresgohtk1+rjlzZKT+ioWEAuTjbKbur/kq/IZG4ml+91A0OI9O56BjwzGBMHjRUpEOt0ZSsQYZwypT9Wdx81IFL6AoIWjeK9s4mgf4WCGbi9+4Ukm+uYr6pS6CK04+5Nbjan/e6fG87jQVtcIMWXZfF4Mprduj0fcsYCt9Bkr74e+Ms0/zFw2A/OIYXxUY/3rbRrRdV8GO3HJwQTBECfmAiGE35wyu3N2RaXMRalJKEumv8eQ==
- Authentication-results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=elektrobit.com header.i="@elektrobit.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"; dkim=pass header.s=selector1 header.d=elektrobit.com header.i="@elektrobit.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
- Cc: Sergej Proskurin <proskurin@xxxxxxxxxxxxx>, Stefano Stabellini <sstabellini@xxxxxxxxxx>, Julien Grall <julien@xxxxxxx>, Bertrand Marquis <bertrand.marquis@xxxxxxx>, Michal Orzel <michal.orzel@xxxxxxx>, Volodymyr Babchuk <Volodymyr_Babchuk@xxxxxxxx>
- Delivery-date: Mon, 20 Apr 2026 21:33:19 +0000
- List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
From: Sergej Proskurin <proskurin@xxxxxxxxxxxxx>
This commit adds a p2m class to the struct p2m_domain to distinguish
between the host's original p2m and alternate p2m's. The need for this
functionality will be shown in the following commits.
This is commit 11/12 of the altp2m_init/altp2m_teardown routines phase.
Signed-off-by: Sergej Proskurin <proskurin@xxxxxxxxxxxxx>
---
v4: Change return type of p2m_is_(hostp2m|altp2m) from bool_t to bool.
---
xen/arch/arm/include/asm/p2m.h | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
diff --git a/xen/arch/arm/include/asm/p2m.h b/xen/arch/arm/include/asm/p2m.h
index 62261d41e780..8ae0cd7ff589 100644
--- a/xen/arch/arm/include/asm/p2m.h
+++ b/xen/arch/arm/include/asm/p2m.h
@@ -32,6 +32,11 @@ struct domain;
extern void memory_type_changed(struct domain *d);
+typedef enum {
+ p2m_host,
+ p2m_alternate,
+} p2m_class_t;
+
/* Per-p2m-table state */
struct p2m_domain {
/*
@@ -111,6 +116,9 @@ struct p2m_domain {
/* Keeping track on which CPU this p2m was used and for which vCPU */
uint8_t last_vcpu_ran[NR_CPUS];
+
+ /* Choose between: host/alternate. */
+ p2m_class_t p2m_class;
};
/*
@@ -424,6 +432,16 @@ static inline int get_page_and_type(struct page_info *page,
/* get host p2m table */
#define p2m_get_hostp2m(d) ((d)->arch.p2m)
+static inline bool p2m_is_hostp2m(const struct p2m_domain *p2m)
+{
+ return p2m->p2m_class == p2m_host;
+}
+
+static inline bool p2m_is_altp2m(const struct p2m_domain *p2m)
+{
+ return p2m->p2m_class == p2m_alternate;
+}
+
static inline bool p2m_vm_event_sanity_check(struct domain *d)
{
return true;
--
2.34.1
|