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

[Xen-ia64-devel] [Patch] allocate all memory to dom0



Hi,

If we don't specify dom0_mem, we can use all memory on dom0 with this patch.
I change alloc_dom0() to alloc_dom0_size(), and alloc_dom0_size() is static 
function.

# HG changeset patch
# User root@PQtest
# Node ID 1625e2ba02fcb2c7d162e178a045b7d540a213f1
# Parent  a2b2b2a011f1d406d49caba478020f3b2b173cb8
allocate all memory to dom0, if we don't specify dom0_mem.

Signed-off-by: Akio Takebe <takebe_akio@xxxxxxxxxxxxxx>

diff -r a2b2b2a011f1 -r 1625e2ba02fc xen/arch/ia64/xen/domain.c
--- a/xen/arch/ia64/xen/domain.c        Mon Jan 15 15:15:26 2007 -0700
+++ b/xen/arch/ia64/xen/domain.c        Thu Jan 18 13:45:00 2007 +0900
@@ -50,7 +50,7 @@
 #include <asm/tlb_track.h>
 #include <asm/perfmon.h>
 
-unsigned long dom0_size = 512*1024*1024;
+unsigned long dom0_size = 0;
 
 /* dom0_max_vcpus: maximum number of VCPUs to create for dom0.  */
 static unsigned int dom0_max_vcpus = 1;
@@ -936,16 +936,24 @@ static void loaddomainelfimage(struct do
        }
 }
 
-void alloc_dom0(void)
-{
+static void alloc_dom0_size(void)
+{
+       unsigned long max_dom0_pages;
+
+       if ( dom0_size == 0 )
+       {
+               max_dom0_pages = avail_domheap_pages() - 
min(avail_domheap_pages() / 16UL, 512UL << (20 - PAGE_SHIFT)) ;
+               dom0_size = max_dom0_pages * PAGE_SIZE;
+       }
+
+       if (running_on_sim) {
+               dom0_size = 128*1024*1024; //FIXME: Should be configurable
+       }
+
        /* Check dom0 size.  */
        if (dom0_size < 4 * 1024 * 1024) {
                panic("dom0_mem is too small, boot aborted"
                        " (try e.g. dom0_mem=256M or dom0_mem=65536K)\n");
-       }
-
-       if (running_on_sim) {
-               dom0_size = 128*1024*1024; //FIXME: Should be configurable
        }
 
        /* no need to allocate pages for now
@@ -1008,6 +1016,8 @@ int construct_dom0(struct domain *d,
        memset(&dsi, 0, sizeof(struct domain_setup_info));
 
        printk("*** LOADING DOMAIN 0 ***\n");
+
+       alloc_dom0_size();
 
        max_pages = dom0_size / PAGE_SIZE;
        d->max_pages = max_pages;
diff -r a2b2b2a011f1 -r 1625e2ba02fc xen/arch/ia64/xen/xensetup.c
--- a/xen/arch/ia64/xen/xensetup.c      Mon Jan 15 15:15:26 2007 -0700
+++ b/xen/arch/ia64/xen/xensetup.c      Thu Jan 18 13:45:00 2007 +0900
@@ -43,7 +43,6 @@ extern void early_setup_arch(char **);
 extern void early_setup_arch(char **);
 extern void late_setup_arch(char **);
 extern void hpsim_serial_init(void);
-extern void alloc_dom0(void);
 extern void setup_per_cpu_areas(void);
 extern void mem_init(void);
 extern void init_IRQ(void);
@@ -409,8 +408,6 @@ void start_kernel(void)
 
     trap_init();
 
-    alloc_dom0();
-
     end_boot_allocator();
 
     init_xenheap_pages(__pa(xen_heap_start), xenheap_phys_end);

Best Regards,

Akio Takebe

Attachment: allocate_all_mem.patch
Description: Binary data

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

 


Rackspace

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