|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [PATCH 03/10] xen/arm: introduce PGC_reserved
In order to differentiate pages of static memory, from those allocated from
heap, this patch introduces a new page flag PGC_reserved to tell.
New struct reserved in struct page_info is to describe reserved page info,
that is, which specific domain this page is reserved to.
Helper page_get_reserved_owner and page_set_reserved_owner are
designated to get/set reserved page's owner.
Struct domain is enlarged to more than PAGE_SIZE, due to newly-imported
struct reserved in struct page_info.
Signed-off-by: Penny Zheng <penny.zheng@xxxxxxx>
---
xen/include/asm-arm/mm.h | 16 +++++++++++++++-
1 file changed, 15 insertions(+), 1 deletion(-)
diff --git a/xen/include/asm-arm/mm.h b/xen/include/asm-arm/mm.h
index 0b7de3102e..d8922fd5db 100644
--- a/xen/include/asm-arm/mm.h
+++ b/xen/include/asm-arm/mm.h
@@ -88,7 +88,15 @@ struct page_info
*/
u32 tlbflush_timestamp;
};
- u64 pad;
+
+ /* Page is reserved. */
+ struct {
+ /*
+ * Reserved Owner of this page,
+ * if this page is reserved to a specific domain.
+ */
+ struct domain *domain;
+ } reserved;
};
#define PG_shift(idx) (BITS_PER_LONG - (idx))
@@ -108,6 +116,9 @@ struct page_info
/* Page is Xen heap? */
#define _PGC_xen_heap PG_shift(2)
#define PGC_xen_heap PG_mask(1, 2)
+ /* Page is reserved, referring static memory */
+#define _PGC_reserved PG_shift(3)
+#define PGC_reserved PG_mask(1, 3)
/* ... */
/* Page is broken? */
#define _PGC_broken PG_shift(7)
@@ -161,6 +172,9 @@ extern unsigned long xenheap_base_pdx;
#define page_get_owner(_p) (_p)->v.inuse.domain
#define page_set_owner(_p,_d) ((_p)->v.inuse.domain = (_d))
+#define page_get_reserved_owner(_p) (_p)->reserved.domain
+#define page_set_reserved_owner(_p,_d) ((_p)->reserved.domain = (_d))
+
#define maddr_get_owner(ma) (page_get_owner(maddr_to_page((ma))))
#define frame_table ((struct page_info *)FRAMETABLE_VIRT_START)
--
2.25.1
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |