[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Xen-devel] [PATCH v5 09/17] xen/arm: p2m type definitions and changes
- To: Tamas K Lengyel <tamas.lengyel@xxxxxxxxxxxx>
- From: Julien Grall <julien.grall@xxxxxxxxxx>
- Date: Fri, 12 Sep 2014 12:23:56 -0700
- Cc: Ian Campbell <ian.campbell@xxxxxxxxxx>, Tim Deegan <tim@xxxxxxx>, Ian Jackson <ian.jackson@xxxxxxxxxxxxx>, "xen-devel@xxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxx>, Stefano Stabellini <stefano.stabellini@xxxxxxxxxx>, Andres Lagar-Cavilla <andres@xxxxxxxxxxxxxxxx>, Jan Beulich <jbeulich@xxxxxxxx>, Daniel De Graaf <dgdegra@xxxxxxxxxxxxx>, Tamas K Lengyel <tklengyel@xxxxxxxxxxxxx>
- Delivery-date: Fri, 12 Sep 2014 19:24:05 +0000
- List-id: Xen developer discussion <xen-devel.lists.xen.org>
H Tamas,
On 12/09/14 01:15, Tamas K Lengyel wrote:
On Thu, Sep 11, 2014 at 10:25 PM, Julien Grall <julien.grall@xxxxxxxxxx
<mailto:julien.grall@xxxxxxxxxx>> wrote:
Hi Tamas,
You skipped my comments/questions on v4.
On 10/09/14 06:28, Tamas K Lengyel wrote:
diff --git a/xen/include/asm-arm/p2m.h b/xen/include/asm-arm/p2m.h
index 08ce07b..b4ca86d 100644
--- a/xen/include/asm-arm/p2m.h
+++ b/xen/include/asm-arm/p2m.h
@@ -2,6 +2,9 @@
[..]
+#include <public/memory.h>
+#include <public/mem_event.h>
Why do you need those 2 includes?
<public/memory.h> might not be necessary in this patch yet, but it will
be required for defining the functions that mem_access will call passing
xenmem_access_t access. I can move the header include into the next
patch in the series if that is cleaner. The mem_event header is not
actually required so I'll remove it.
Yes please.
#include <xen/p2m-common.h>
@@ -11,6 +14,48 @@ struct domain;
extern void memory_type_changed(struct domain *);
+/* List of possible type for each page in the p2m entry.
+ * The number of available bit per page in the pte for this
purpose is 4 bits.
+ * So it's possible to only have 16 fields. If we run out of
value in the
+ * future, it's possible to use higher value for pseudo-type
and don't store
+ * them in the p2m entry.
+ */
+typedef enum {
+ p2m_invalid = 0, /* Nothing mapped here */
+ p2m_ram_rw, /* Normal read/write guest RAM */
+ p2m_ram_ro, /* Read-only; writes are silently
dropped */
+ p2m_mmio_direct, /* Read/write mapping of genuine MMIO
area */
+ p2m_map_foreign, /* Ram pages from foreign domain */
+ p2m_grant_map_rw, /* Read/write grant mapping */
+ p2m_grant_map_ro, /* Read-only grant mapping */
+ /* The types below are only used to decide the page
attribute in the P2M */
+ p2m_iommu_map_rw, /* Read/write iommu mapping */
+ p2m_iommu_map_ro, /* Read-only iommu mapping */
+ p2m_max_real_type, /* Types after this won't be store in
the p2m */
+} p2m_type_t;
Any reason to move the enum earlier? If not, I would prefer to keep
at the same place. It will be easier with git-blame to find when a
new type has been added.
Stylistically it made more sense to have p2m_type_t and p2m_access_t
together (as it is on the x86 as well). And they are defined here as the
p2m_domain does have a field now defining default_access with p2m_access_t.
If it's only for the style I wouldn't move them.
Anyway, I'll Ian/Stefano decides about this.
+/*
+ * Additional access types, which are used to further restrict
+ * the permissions given by the p2m_type_t memory type. Violations
+ * caused by p2m_access_t restrictions are sent to the mem_event
+ * interface.
+ *
+ * The access permissions are soft state: when any ambigious
change of page
ambiguous.
Copy-pasta but will fix.
[..]
+ /* Default P2M access type for each page in the the domain:
new pages,
+ * swapped in pages, cleared pages, and pages that are
ambiquously
Did you intend to mean ambiguously rather than ambiquously?
Copy-pasta again but will fix. Maybe in a separate patch where I fix it
here and in the x86 side as well?
I'm OK for a separate patch fixing x86 side, but there is no reason to
fix the spelling for ARM outside this patch.
Regards,
--
Julien Grall
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|