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

[Xen-changelog] [xen-unstable] Split the meaning of "dom0-min-mem = 0" t

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [xen-unstable] Split the meaning of "dom0-min-mem = 0" to a new option.
From: Xen patchbot-unstable <patchbot-unstable@xxxxxxxxxxxxxxxxxxx>
Date: Tue, 08 Apr 2008 02:01:51 -0700
Delivery-date: Tue, 08 Apr 2008 02:06:15 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-changelog-request@lists.xensource.com?subject=help>
List-id: BK change log <xen-changelog.lists.xensource.com>
List-post: <mailto:xen-changelog@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=unsubscribe>
Reply-to: xen-devel@xxxxxxxxxxxxxxxxxxx
Sender: xen-changelog-bounces@xxxxxxxxxxxxxxxxxxx
# HG changeset patch
# User Keir Fraser <keir.fraser@xxxxxxxxxx>
# Date 1207576886 -3600
# Node ID 6143f5bd32a7276b616a2da7efe172b8ccc781c5
# Parent  e8f058b99171429611a74df358d85246121be228
Split the meaning of "dom0-min-mem = 0" to a new option.

I have written a patch to split the current meaning of
"dom0-min-mem = 0" to a new option "enable-dom0-ballooning".

Signed-off-by: Masaki Kanno <kanno.masaki@xxxxxxxxxxxxxx>
Signed-off-by: Keir Fraser <keir.fraser@xxxxxxxxxx>
---
 tools/examples/xend-config-xenapi.sxp |   11 +++++++----
 tools/examples/xend-config.sxp        |   11 +++++++----
 tools/python/xen/xend/XendOptions.py  |    7 +++++++
 tools/python/xen/xend/balloon.py      |   17 +++++++++--------
 4 files changed, 30 insertions(+), 16 deletions(-)

diff -r e8f058b99171 -r 6143f5bd32a7 tools/examples/xend-config-xenapi.sxp
--- a/tools/examples/xend-config-xenapi.sxp     Sat Apr 05 22:25:30 2008 +0100
+++ b/tools/examples/xend-config-xenapi.sxp     Mon Apr 07 15:01:26 2008 +0100
@@ -167,11 +167,14 @@
 #(network-script network-nat)
 #(vif-script     vif-nat)
 
+# dom0-min-mem is the lowest permissible memory level (in MB) for dom0.
+# This is a minimum both for auto-ballooning (as enabled by
+# enable-dom0-ballooning below) and for xm mem-set when applied to dom0.
+(dom0-min-mem 196)
 
-# Dom0 will balloon out when needed to free memory for domU.
-# dom0-min-mem is the lowest memory level (in MB) dom0 will get down to.
-# If dom0-min-mem=0, dom0 will never balloon out.
-(dom0-min-mem 196)
+# Whether to enable auto-ballooning of dom0 to allow domUs to be created.
+# If enable-dom0-ballooning = no, dom0 will never balloon out.
+(enable-dom0-ballooning yes)
 
 # In SMP system, dom0 will use dom0-cpus # of CPUS
 # If dom0-cpus = 0, dom0 will take all cpus available
diff -r e8f058b99171 -r 6143f5bd32a7 tools/examples/xend-config.sxp
--- a/tools/examples/xend-config.sxp    Sat Apr 05 22:25:30 2008 +0100
+++ b/tools/examples/xend-config.sxp    Mon Apr 07 15:01:26 2008 +0100
@@ -165,11 +165,14 @@
 #(network-script network-nat)
 #(vif-script     vif-nat)
 
-
-# Dom0 will balloon out when needed to free memory for domU.
-# dom0-min-mem is the lowest memory level (in MB) dom0 will get down to.
-# If dom0-min-mem=0, dom0 will never balloon out.
+# dom0-min-mem is the lowest permissible memory level (in MB) for dom0.
+# This is a minimum both for auto-ballooning (as enabled by
+# enable-dom0-ballooning below) and for xm mem-set when applied to dom0.
 (dom0-min-mem 196)
+
+# Whether to enable auto-ballooning of dom0 to allow domUs to be created.
+# If enable-dom0-ballooning = no, dom0 will never balloon out.
+(enable-dom0-ballooning yes)
 
 # In SMP system, dom0 will use dom0-cpus # of CPUS
 # If dom0-cpus = 0, dom0 will take all cpus available
diff -r e8f058b99171 -r 6143f5bd32a7 tools/python/xen/xend/XendOptions.py
--- a/tools/python/xen/xend/XendOptions.py      Sat Apr 05 22:25:30 2008 +0100
+++ b/tools/python/xen/xend/XendOptions.py      Mon Apr 07 15:01:26 2008 +0100
@@ -278,6 +278,13 @@ class XendOptions:
 
     def get_dom0_min_mem(self):
         return self.get_config_int('dom0-min-mem', self.dom0_min_mem_default)
+
+    def get_enable_dom0_ballooning(self):
+        enable_dom0_ballooning_default = 'yes'
+        if self.get_dom0_min_mem() == 0:
+            enable_dom0_ballooning_default = 'no'
+        return self.get_config_bool('enable-dom0-ballooning',
+                                    enable_dom0_ballooning_default)
 
     def get_dom0_vcpus(self):
         return self.get_config_int('dom0-cpus', self.dom0_vcpus_default)
diff -r e8f058b99171 -r 6143f5bd32a7 tools/python/xen/xend/balloon.py
--- a/tools/python/xen/xend/balloon.py  Sat Apr 05 22:25:30 2008 +0100
+++ b/tools/python/xen/xend/balloon.py  Mon Apr 07 15:01:26 2008 +0100
@@ -81,8 +81,8 @@ def free(need_mem):
     # needs to balloon.  No matter where we expect the free memory to come
     # from, we need to wait for it to become available.
     #
-    # We are not allowed to balloon below dom0_min_mem, or if dom0_min_mem
-    # is 0, we cannot balloon at all.  Memory can still become available
+    # We are not allowed to balloon below dom0_min_mem, or if dom0_ballooning
+    # is False, we cannot balloon at all.  Memory can still become available
     # through a rebooting domain, however.
     #
     # Eventually, we time out (presumably because there really isn't enough
@@ -100,6 +100,7 @@ def free(need_mem):
 
     try:
         dom0_min_mem = xoptions.get_dom0_min_mem() * 1024
+        dom0_ballooning = xoptions.get_enable_dom0_ballooning()
         dom0_alloc = get_dom0_current_alloc()
 
         retries = 0
@@ -115,7 +116,7 @@ def free(need_mem):
         free_mem = physinfo['free_memory']
         scrub_mem = physinfo['scrub_memory']
         total_mem = physinfo['total_memory']
-        if dom0_min_mem > 0:
+        if dom0_ballooning:
             max_free_mem = total_mem - dom0_min_mem
         else:
             max_free_mem = total_mem - dom0_alloc
@@ -137,7 +138,7 @@ def free(need_mem):
                 log.debug("Balloon: %d KiB free; %d to scrub; need %d; 
retries: %d.",
                           free_mem, scrub_mem, need_mem, rlimit)
 
-            if dom0_min_mem > 0:
+            if dom0_ballooning:
                 dom0_alloc = get_dom0_current_alloc()
                 new_alloc = dom0_alloc - (need_mem - free_mem - scrub_mem)
 
@@ -163,10 +164,10 @@ def free(need_mem):
             last_free = free_mem + scrub_mem
 
         # Not enough memory; diagnose the problem.
-        if dom0_min_mem == 0:
-            raise VmError(('Not enough free memory and dom0_min_mem is 0, so '
-                           'I cannot release any more.  I need %d KiB but '
-                           'only have %d.') %
+        if not dom0_ballooning:
+            raise VmError(('Not enough free memory and enable-dom0-ballooning '
+                           'is False, so I cannot release any more.  '
+                           'I need %d KiB but only have %d.') %
                           (need_mem, free_mem))
         elif new_alloc < dom0_min_mem:
             raise VmError(

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

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] [xen-unstable] Split the meaning of "dom0-min-mem = 0" to a new option., Xen patchbot-unstable <=