WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-ia64-devel

[Xen-devel] [PATCH][IA64] fix configure VHPT size per domain

To: Keir Fraser <Keir.Fraser@xxxxxxxxxxxx>
Subject: [Xen-devel] [PATCH][IA64] fix configure VHPT size per domain
From: Kouya Shimura <kouya@xxxxxxxxxxxxxx>
Date: Mon, 22 Oct 2007 20:17:32 +0900
Cc: xen-devel@xxxxxxxxxxxxxxxxxxx, xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
Delivery-date: Mon, 22 Oct 2007 04:18:15 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
Hi Keir,

Sorry, my patch (cset 16136, configure VHPT size per domain for IA64)
was a little bit kludge and implies a bug. 
PV domain can't boot up in some VHPT size. 
Please apply the attached patch.

Thanks,
Kouya

Signed-off-by: Kouya Shimura <kouya@xxxxxxxxxxxxxx>

diff -r 98ac6d05aed2 tools/libxc/xc_dom.h
--- a/tools/libxc/xc_dom.h      Sun Oct 21 15:58:00 2007 -0600
+++ b/tools/libxc/xc_dom.h      Mon Oct 22 19:15:27 2007 +0900
@@ -95,6 +95,7 @@ struct xc_dom_image {
 
     int guest_xc;
     domid_t guest_domid;
+    int8_t vhpt_size_log2; /* for IA64 */
     int shadow_enabled;
 
     int xen_version;
diff -r 98ac6d05aed2 tools/libxc/xc_dom_ia64.c
--- a/tools/libxc/xc_dom_ia64.c Sun Oct 21 15:58:00 2007 -0600
+++ b/tools/libxc/xc_dom_ia64.c Mon Oct 22 18:27:31 2007 +0900
@@ -260,7 +260,7 @@ int arch_setup_bootearly(struct xc_dom_i
     domctl.u.arch_setup.bp = (dom->start_info_pfn << PAGE_SHIFT)
         + sizeof(start_info_t);
     domctl.u.arch_setup.maxmem = dom->total_pages << PAGE_SHIFT;
-    domctl.u.arch_setup.vhpt_size_log2 = dom->flags;
+    domctl.u.arch_setup.vhpt_size_log2 = dom->vhpt_size_log2;
     rc = do_domctl(dom->guest_xc, &domctl);
     return rc;
 }
diff -r 98ac6d05aed2 tools/python/xen/lowlevel/xc/xc.c
--- a/tools/python/xen/lowlevel/xc/xc.c Sun Oct 21 15:58:00 2007 -0600
+++ b/tools/python/xen/lowlevel/xc/xc.c Mon Oct 22 19:16:24 2007 +0900
@@ -413,6 +413,7 @@ static PyObject *pyxc_linux_build(XcObje
     char *image, *ramdisk = NULL, *cmdline = "", *features = NULL;
     int flags = 0;
     int store_evtchn, console_evtchn;
+    int vhpt = 0;
     unsigned int mem_mb;
     unsigned long store_mfn = 0;
     unsigned long console_mfn = 0;
@@ -425,19 +426,22 @@ static PyObject *pyxc_linux_build(XcObje
                                 "console_evtchn", "image",
                                 /* optional */
                                 "ramdisk", "cmdline", "flags",
-                                "features", NULL };
-
-    if ( !PyArg_ParseTupleAndKeywords(args, kwds, "iiiis|ssis", kwd_list,
+                                "features", "vhpt", NULL };
+
+    if ( !PyArg_ParseTupleAndKeywords(args, kwds, "iiiis|ssisi", kwd_list,
                                       &domid, &store_evtchn, &mem_mb,
                                       &console_evtchn, &image,
                                       /* optional */
                                       &ramdisk, &cmdline, &flags,
-                                      &features) )
+                                      &features, &vhpt) )
         return NULL;
 
     xc_dom_loginit();
     if (!(dom = xc_dom_allocate(cmdline, features)))
         return pyxc_error_to_exception();
+
+    /* for IA64 */
+    dom->vhpt_size_log2 = vhpt;
 
     if ( xc_dom_linux_build(self->xc_handle, dom, domid, mem_mb, image,
                            ramdisk, flags, store_evtchn, &store_mfn,
diff -r 98ac6d05aed2 tools/python/xen/xend/image.py
--- a/tools/python/xen/xend/image.py    Sun Oct 21 15:58:00 2007 -0600
+++ b/tools/python/xen/xend/image.py    Mon Oct 22 18:56:22 2007 +0900
@@ -198,6 +198,7 @@ class LinuxImageHandler(ImageHandler):
 
     ostype = "linux"
     flags = 0
+    vhpt = 0
 
     def buildDomain(self):
         store_evtchn = self.vm.getStorePort()
@@ -225,7 +226,8 @@ class LinuxImageHandler(ImageHandler):
                               cmdline        = self.cmdline,
                               ramdisk        = self.ramdisk,
                               features       = self.vm.getFeatures(),
-                              flags          = self.flags)
+                              flags          = self.flags,
+                              vhpt           = self.vhpt)
 
 class PPC_LinuxImageHandler(LinuxImageHandler):
 
@@ -533,9 +535,6 @@ class IA64_Linux_ImageHandler(LinuxImage
         LinuxImageHandler.configure(self, vmConfig)
         self.vhpt = int(vmConfig['platform'].get('vhpt',  0))
 
-    def buildDomain(self):
-        self.flags = self.vhpt
-        return LinuxImageHandler.buildDomain(self)
 
 class X86_HVM_ImageHandler(HVMImageHandler):
 
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-devel] [PATCH][IA64] fix configure VHPT size per domain, Kouya Shimura <=