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

[Xen-changelog] [xen-unstable] [IA64] Use domheap instead of xenheap for P2M table



# HG changeset patch
# User awilliam@xxxxxxxxxxxx
# Date 1173886420 21600
# Node ID c0cdb349a11ac4b401a12b46593cb9d6605f8f66
# Parent  cb2575cec95c9960c30133725943a0da81daa2f5
[IA64] Use domheap instead of xenheap for P2M table

This allows larger memory configurations without exhausting xenheap.
New boot option 'p2m_xenheap' reverts to previous behavior.

Signed-off-by: Kouya Shimura <kouya@xxxxxxxxxxxxxx>
---
 xen/arch/ia64/xen/mm.c |   16 +++++++++++++++-
 1 files changed, 15 insertions(+), 1 deletion(-)

diff -r cb2575cec95c -r c0cdb349a11a xen/arch/ia64/xen/mm.c
--- a/xen/arch/ia64/xen/mm.c    Mon Mar 12 10:07:08 2007 -0600
+++ b/xen/arch/ia64/xen/mm.c    Wed Mar 14 09:33:40 2007 -0600
@@ -1903,9 +1903,20 @@ void __free_pages(struct page_info *page
        free_xenheap_page(page);
 }
 
+static int opt_p2m_xenheap;
+boolean_param("p2m_xenheap", opt_p2m_xenheap);
+
 void *pgtable_quicklist_alloc(void)
 {
     void *p;
+    if (!opt_p2m_xenheap) {
+        struct page_info *page = alloc_domheap_page(NULL);
+        if (page == NULL)
+            return NULL;
+        p = page_to_virt(page);
+        clear_page(p);
+        return p;
+    }
     p = alloc_xenheap_pages(0);
     if (p)
         clear_page(p);
@@ -1914,7 +1925,10 @@ void *pgtable_quicklist_alloc(void)
 
 void pgtable_quicklist_free(void *pgtable_entry)
 {
-       free_xenheap_page(pgtable_entry);
+    if (!opt_p2m_xenheap)
+        free_domheap_page(virt_to_page(pgtable_entry));
+    else
+        free_xenheap_page(pgtable_entry);
 }
 
 void put_page_type(struct page_info *page)

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

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