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

[Xen-changelog] [xen-unstable] [IA64] fix VTI boot



# HG changeset patch
# User awilliam@xxxxxxxxxxx
# Node ID 6f3b4d6b04f5a81f72acbbdb3c7c968e5838d929
# Parent  0361efd32d4dadc346f8a40accfbeb3e609ef376
[IA64] fix VTI boot

workaroud patch for memory initial interface

Signed-off-by: zhang xiantao <xiantao.zhang@xxxxxxxxx>
Signed-off-by: Zhang Xin <xing.z.zhang@xxxxxxxxx>
---
 tools/libxc/ia64/xc_ia64_hvm_build.c |   16 +++++++++++++++-
 1 files changed, 15 insertions(+), 1 deletion(-)

diff -r 0361efd32d4d -r 6f3b4d6b04f5 tools/libxc/ia64/xc_ia64_hvm_build.c
--- a/tools/libxc/ia64/xc_ia64_hvm_build.c      Fri Nov 10 11:14:47 2006 -0700
+++ b/tools/libxc/ia64/xc_ia64_hvm_build.c      Fri Nov 10 11:14:51 2006 -0700
@@ -554,12 +554,26 @@ setup_guest(int xc_handle, uint32_t dom,
     unsigned long page_array[3];
     shared_iopage_t *sp;
     void *ioreq_buffer_page;
-    unsigned long dom_memsize = (memsize << 20);
+    // memsize = required memsize(in configure file) + 16M
+    // dom_memsize will pass to xc_ia64_build_hob(), so must be subbed 16M 
+    unsigned long dom_memsize = ((memsize - 16) << 20);
+    unsigned long nr_pages = (unsigned long)memsize << (20 - PAGE_SHIFT);
+    int rc;
     DECLARE_DOMCTL;
+
+    // ROM size for guest firmware, ioreq page and xenstore page
+    nr_pages += 3; 
 
     if ((image_size > 12 * MEM_M) || (image_size & (PAGE_SIZE - 1))) {
         PERROR("Guest firmware size is incorrect [%ld]?", image_size);
         return -1;
+    }
+
+    rc = xc_domain_memory_increase_reservation(xc_handle, dom, nr_pages,
+                                               0, 0, NULL); 
+    if (rc != 0) {
+        PERROR("Could not allocate memory for HVM guest.\n");
+        goto error_out;
     }
 
     /* This will creates the physmap.  */

_______________________________________________
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®.