[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH 02/18] arm/altp2m: Add first altp2m HVMOP stubs.



Hello Sergej,

On 04/07/16 12:45, Sergej Proskurin wrote:
This commit moves the altp2m-related code from x86 to ARM.

Looking at the code in the follow-up patches, I have the impression that the code is very similar (if not exactly) to the x86 code. If so, we should move the HVMOP for altp2m in common code rather than duplicating the code.

Functions
that are no yet supported notify the caller or print a BUG message
stating their absence.

Also, the struct arch_domain is extended with the altp2m_active
attribute, represeting the current altp2m activity configuration of the

s/represeting/representing/

domain.

Signed-off-by: Sergej Proskurin <proskurin@xxxxxxxxxxxxx>
---
Cc: Stefano Stabellini <sstabellini@xxxxxxxxxx>
Cc: Julien Grall <julien.grall@xxxxxxx>
---
  xen/arch/arm/hvm.c           | 82 ++++++++++++++++++++++++++++++++++++++++++++
  xen/include/asm-arm/altp2m.h | 22 ++++++++++--
  xen/include/asm-arm/domain.h |  3 ++
  3 files changed, 105 insertions(+), 2 deletions(-)

[..]

diff --git a/xen/include/asm-arm/altp2m.h b/xen/include/asm-arm/altp2m.h
index a87747a..16ae9d6 100644
--- a/xen/include/asm-arm/altp2m.h
+++ b/xen/include/asm-arm/altp2m.h
@@ -2,6 +2,7 @@
   * Alternate p2m
   *
   * Copyright (c) 2014, Intel Corporation.
+ * Copyright (c) 2016, Sergej Proskurin <proskurin@xxxxxxxxxxxxx>.
   *
   * This program is free software; you can redistribute it and/or modify it
   * under the terms and conditions of the GNU General Public License,
@@ -24,8 +25,7 @@
  /* Alternate p2m on/off per domain */
  static inline bool_t altp2m_active(const struct domain *d)
  {
-    /* Not implemented on ARM. */
-    return 0;
+    return d->arch.altp2m_active;
  }

  /* Alternate p2m VCPU */
@@ -36,4 +36,22 @@ static inline uint16_t altp2m_vcpu_idx(const struct vcpu *v)
      return 0;
  }

+static inline void altp2m_vcpu_initialise(struct vcpu *v)
+{
+    /* Not implemented on ARM, should not be reached. */
+    BUG();
+}
+
+static inline void altp2m_vcpu_destroy(struct vcpu *v)
+{
+    /* Not implemented on ARM, should not be reached. */
+    BUG();
+}
+
+static inline void altp2m_vcpu_reset(struct vcpu *v)
+{
+    /* Not implemented on ARM, should not be reached. */
+    BUG();
+}

Those 3 helpers are not used by anyone in the code so far and you replace them by another implementation in patch #5.

So I would prefer if you introduce the helpers and implementation only when they will be used.

  #endif /* __ASM_ARM_ALTP2M_H */
diff --git a/xen/include/asm-arm/domain.h b/xen/include/asm-arm/domain.h
index 979f7de..2039f16 100644
--- a/xen/include/asm-arm/domain.h
+++ b/xen/include/asm-arm/domain.h
@@ -127,6 +127,9 @@ struct arch_domain
      paddr_t efi_acpi_gpa;
      paddr_t efi_acpi_len;
  #endif
+
+    /* altp2m: allow multiple copies of host p2m */
+    bool_t altp2m_active;
  }  __cacheline_aligned;

  struct arch_vcpu


Regards,

--
Julien Grall

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel

 


Rackspace

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