All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] Values of cpu_weight and cpu_cap are lost after xend restart
@ 2010-08-10  9:06 Dube, Lutz
  2010-08-16 16:35 ` Stefano Stabellini
  2010-08-27 12:53 ` Olaf Hering
  0 siblings, 2 replies; 5+ messages in thread
From: Dube, Lutz @ 2010-08-10  9:06 UTC (permalink / raw)
  To: xen-devel@lists.xensource.com


[-- Attachment #1.1: Type: text/plain, Size: 2293 bytes --]

# HG changeset patch
# User Lutz.Dube
# Node ID ca2c8c262dbaa6b2521cec60af7cd688dabdf850
# Parent  8992134dcfd0b9e1e86f4111e68a8aa48bd33c3c
Values of cpu_weight and cpu_cap are lost after xend restart

For managed domains in state 'halted' I always get default values
for cpu_cap / cpu_weight after xend restart.
This is because the names of parameters differ between a SXP file to
create a VM (here the parameter names are cpu_cap / cpu_weight) and
a SXP file of a managed VM (here vcpus_params (cap 0) (weight 0)).
But XendConfig.py reads only cpu_cap / cpu_weight and if not found,
default values are used.

The patch reads first vcpus_params (cap, weight), if not found then cpu_cap,
cpu_weight and if both parameters are missing it uses the default values.

Signed-off-by: Lutz Dube Lutz.Dube@ts.fujitsu.com

diff -r 8992134dcfd0 -r ca2c8c262dba tools/python/xen/xend/XendConfig.py
--- a/tools/python/xen/xend/XendConfig.py       Wed Aug 04 19:24:17 2010 +0100
+++ b/tools/python/xen/xend/XendConfig.py       Tue Aug 10 10:45:59 2010 +0200
@@ -686,10 +686,12 @@ class XendConfig(dict):
         # Convert scheduling parameters to vcpus_params
         if 'vcpus_params' not in cfg:
             cfg['vcpus_params'] = {}
-        cfg["vcpus_params"]["weight"] = \
-            int(sxp.child_value(sxp_cfg, "cpu_weight", 256))
-        cfg["vcpus_params"]["cap"] = \
-            int(sxp.child_value(sxp_cfg, "cpu_cap", 0))
+        if not cfg["vcpus_params"].has_key("weight"):
+            cfg["vcpus_params"]["weight"] = \
+                int(sxp.child_value(sxp_cfg, "cpu_weight", 256))
+        if not cfg["vcpus_params"].has_key("cap"):
+            cfg["vcpus_params"]["cap"] = \
+                int(sxp.child_value(sxp_cfg, "cpu_cap", 0))

         # Only extract options we know about.
         extract_keys = LEGACY_UNSUPPORTED_BY_XENAPI_CFG + \


---
Kind regards

Lutz Dube
Softwareentwickler
TSP ES&S SWE OS7

FUJITSU TECHNOLOGY SOLUTIONS GMBH
Domagkstr. 28
D-80807 München

Telefon:        +49 (0)89 3222 2688
Telefax:        +49 (0)89 3222 329 2688
Email:          Lutz Dube@ts.fujitsu.com

Internet:        http://ts.fujitsu.com<http://ts.fujitsu.com/>
Firmenangaben: http://de.ts.fujitsu.com/imprint.html





[-- Attachment #1.2: Type: text/html, Size: 5076 bytes --]

[-- Attachment #2: patch-cap_weight --]
[-- Type: application/octet-stream, Size: 1850 bytes --]

# HG changeset patch
# User Lutz.Dube
# Node ID ca2c8c262dbaa6b2521cec60af7cd688dabdf850
# Parent  8992134dcfd0b9e1e86f4111e68a8aa48bd33c3c
Values of cpu_weight and cpu_cap are lost after xend restart

For managed domains in state 'halted' I always get default values
for cpu_cap / cpu_weight after xend restart.
This is because the names of parameters differ between a SXP file to
create a VM (here the parameter names are cpu_cap / cpu_weight) and
a SXP file of a managed VM (here vcpus_params (cap 0) (weight 0)).
But XendConfig.py reads only cpu_cap / cpu_weight and if not found,
default values are used.

The patch reads first vcpus_params (cap, weight), if not found then cpu_cap,
cpu_weight and if both parameters are missing it uses the default values.

Signed-off-by: Lutz Dube Lutz.Dube@ts.fujitsu.com

diff -r 8992134dcfd0 -r ca2c8c262dba tools/python/xen/xend/XendConfig.py
--- a/tools/python/xen/xend/XendConfig.py	Wed Aug 04 19:24:17 2010 +0100
+++ b/tools/python/xen/xend/XendConfig.py	Tue Aug 10 10:45:59 2010 +0200
@@ -686,10 +686,12 @@ class XendConfig(dict):
         # Convert scheduling parameters to vcpus_params
         if 'vcpus_params' not in cfg:
             cfg['vcpus_params'] = {}
-        cfg["vcpus_params"]["weight"] = \
-            int(sxp.child_value(sxp_cfg, "cpu_weight", 256))
-        cfg["vcpus_params"]["cap"] = \
-            int(sxp.child_value(sxp_cfg, "cpu_cap", 0))
+        if not cfg["vcpus_params"].has_key("weight"):
+            cfg["vcpus_params"]["weight"] = \
+                int(sxp.child_value(sxp_cfg, "cpu_weight", 256))
+        if not cfg["vcpus_params"].has_key("cap"):
+            cfg["vcpus_params"]["cap"] = \
+                int(sxp.child_value(sxp_cfg, "cpu_cap", 0))
 
         # Only extract options we know about.
         extract_keys = LEGACY_UNSUPPORTED_BY_XENAPI_CFG + \

[-- Attachment #3: Type: text/plain, Size: 138 bytes --]

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

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2010-08-30  6:41 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-08-10  9:06 [PATCH] Values of cpu_weight and cpu_cap are lost after xend restart Dube, Lutz
2010-08-16 16:35 ` Stefano Stabellini
2010-08-16 19:15   ` Pasi Kärkkäinen
2010-08-27 12:53 ` Olaf Hering
2010-08-30  6:41   ` Dube, Lutz

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.