[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:26:27 -0400
  • Arc-authentication-results: i=2; mx.microsoft.com 1; spf=pass (sender ip is 40.93.4.10) 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=WZl5WB8Rb0zzCXssJrSkVVsblLc37+8SRnNyIv70ZSLK9xf78vSpElf4ftCEpGKp4DYKBXUmYSmLmDD8nzQQ8LHL4DDLeZm6LtWZQrA/8kmfxzUi3zDJGIYnP46vWYVDDLnzIN/h9NZYvNOLi5nSqzFzqiKbmEJZe7Ei5CAKNuDavmysVcSd/r/JccTQr3PfbzirJBX/wfYO27HM6bV8hVxofJ5GcKTc0jHaY8PLmHENTY/C2fyClWypIFY9YkUR6Evotgxbo5MqmkoNw6iiYurXnzKz7fkkOq0TFHCUmpc0HUR40eOXQEqtkw/OvLAPpbqh9f4BmZP5gDnHcC/Nvg==
  • 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=eCCoDppICBUrEPD2xAFyuz/hm67pKSWqJC8JGdHASPIoTe/g+MWq9mGubEaNTmwOUkxZ1fQgSArdWdCUyFVvBuRSxZngUm5jhx1wK83FTeOfmwG/zW4+5Xb3CQnTLi8OiDrl3H5tXo43FaCOLwqrQ+udvq0eupTIgB64vhVbKpLD16qvPpVDOPha0A61hP69ETWwz2Rn/+Pk/5xX1ODx4fzPSmMUo8OoDnmanvxCfBwfMU6979G/MVLvqXEhmgzKSJyHZVEaf4wTbjrydcqNi+5T4zJxsyA0M/kxrYE8/YtJJaArLJ8PPECzzzfqn3t9p31wgNqzrRWb12CBuSEjRw==
  • Arc-seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass; b=JtYkIA0sS9/ZBF0wvRhsJ44ZKiwgxFOITYNWUbJs2kDtEQLALpcNR5mHAGudtZ2VsQy/+0hwkCSmGFum9C2mbANEQ3sQ7RvFkSsPXDRFRx7kewP6muMefFWDd9N0X0v294lFo0YwdUSBKLfQwK4+isoXAyOEdWg1fSyOBxKt5FOyMyvEUr246ljL9ypPO2OqkBAqnwAhQ9o8jS85nAKGdkjOIUDNnAmh8bSQp+9+D/aX/aje9m9sbrSizhN/1ANens3lvh8c6XEnfA35OUMhEkW65CZl3p45yR+freC3RsuzGDGlaWDFmzxxkudLyR5xz+pX6LoDZu9PnT8SJDpfLQ==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=WnUrJyATV4jcskrT7rsAH90hLoE69O0lEd/g0SCKyrsVRr3wJcNpBIdinfSC2OhJNoH0uDe8U+pKvNWOTwNChAA2S4JtDKvnVPUzx6Ueyn8YG4iRq2qzSV4RQ2ZWoU3l0hHVblywMwfE30MBJT1+TBIQ+KgNGHqxc/HM3xTv3kMFlhHIQE3Qw0WDsQhbpKrUcioJdFENQsEL/wvJFGY/K3CRF7Sf19vT2VS8iaY6uvUdrwyApv/Gj3oSrmhTpBTTke12L8Bvnv66P97zvrR+VFCnlKBUMW7mfJdXiQglCd69hWLjfUj7vyPQf+0NiIthm5pPtdGgTet93QhJPWSX+w==
  • 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:27:54 +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




 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.