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-devel

[Xen-devel] [PATCH] libxl: Set default shadow memory based on final valu

To: <xen-devel@xxxxxxxxxxxxxxxxxxx>
Subject: [Xen-devel] [PATCH] libxl: Set default shadow memory based on final values for vcpus and memory
From: George Dunlap <george.dunlap@xxxxxxxxxxxxx>
Date: Tue, 18 May 2010 15:14:36 -0500
Cc: george.dunlap@xxxxxxxxxxxxx
Delivery-date: Tue, 18 May 2010 13:15:48 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
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/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
Set default shadow memory based on final versions of memory and vcpus, not on 
minimum
default versions.

Failure mode was failed p2m allocaitons, e.g., with hvm-linux PV drivers mapping
the shared-info page.

Signed-off-by: George Dunlap <george.dunlap@xxxxxxxxxxxxx>

diff -r c6db509d7e46 -r 3f1028347177 tools/libxl/xl_cmdimpl.c
--- a/tools/libxl/xl_cmdimpl.c  Tue May 18 15:18:26 2010 +0100
+++ b/tools/libxl/xl_cmdimpl.c  Tue May 18 15:13:46 2010 -0500
@@ -180,7 +180,7 @@
     b_info->max_memkb = 32 * 1024;
     b_info->target_memkb = b_info->max_memkb;
     if (c_info->hvm) {
-        b_info->shadow_memkb = 
libxl_get_required_shadow_memory(b_info->max_memkb, b_info->max_vcpus);
+        b_info->shadow_memkb = 0; /* Set later */
         b_info->video_memkb = 8 * 1024;
         b_info->kernel = "hvmloader";
         b_info->hvm = 1;
@@ -478,12 +478,17 @@
         b_info->target_memkb = b_info->max_memkb;
     }
 
+    /* libxl_get_required_shadow_memory() must be called after final values
+     * (default or specified) for vcpus and memory are set, because the
+     * calculation depends on those values. */
+    if (!xlu_cfg_get_long (config, "shadow_memory", &l))
+        b_info->shadow_memkb = l * 1024;
+    else
+        b_info->shadow_memkb = 
libxl_get_required_shadow_memory(b_info->max_memkb, b_info->max_vcpus);
+
     if (!xlu_cfg_get_long(config, "tsc_mode", &l))
         b_info->tsc_mode = l;
 
-    if (!xlu_cfg_get_long (config, "shadow_memory", &l))
-        b_info->shadow_memkb = l * 1024;
-
     if (!xlu_cfg_get_long (config, "videoram", &l))
         b_info->video_memkb = l * 1024;
 

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

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-devel] [PATCH] libxl: Set default shadow memory based on final values for vcpus and memory, George Dunlap <=