Dube, Lutz
2010-Aug-10 09:06 UTC
[Xen-devel] [PATCH] Values of cpu_weight and cpu_cap are lost after xend restart
# 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 _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Stefano Stabellini
2010-Aug-16 16:35 UTC
Re: [Xen-devel] [PATCH] Values of cpu_weight and cpu_cap are lost after xend restart
On Tue, 10 Aug 2010, Dube, Lutz wrote:> # 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 >applied, thanks _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Pasi Kärkkäinen
2010-Aug-16 19:15 UTC
Re: [Xen-devel] [PATCH] Values of cpu_weight and cpu_cap are lost after xend restart
On Mon, Aug 16, 2010 at 05:35:24PM +0100, Stefano Stabellini wrote:> On Tue, 10 Aug 2010, Dube, Lutz wrote: > > # 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 > > > > applied, thanks >Is this needed for xen-4.0-testing.hg aswell? -- Pasi _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Olaf Hering
2010-Aug-27 12:53 UTC
Re: [Xen-devel] [PATCH] Values of cpu_weight and cpu_cap are lost after xend restart
On Tue, Aug 10, Dube, Lutz wrote:> # 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.Lutz, does xen-unstable actually work for you after this change is applied? xm start <guest> fails for me on SLES11, as first reported here: http://lists.xensource.com/archives/html/xen-devel/2010-08/msg01461.html My python skills are not good enough to fix it, and this change looks like the only one between rev 21976:22019 that touches self.getWeight() related code in XendDomainInfo.py [2010-08-27 14:36:38 4654] ERROR (XendDomainInfo:488) VM start failed Traceback (most recent call last): File "/usr/lib64/python2.6/site-packages/xen/xend/XendDomainInfo.py", line 473, in start XendTask.log_progress(0, 30, self._constructDomain) File "/usr/lib64/python2.6/site-packages/xen/xend/XendTask.py", line 209, in log_progress retval = func(*args, **kwds) File "/usr/lib64/python2.6/site-packages/xen/xend/XendDomainInfo.py", line 2618, in _constructDomain assert type(weight) == int AssertionError Olaf _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Dube, Lutz
2010-Aug-30 06:41 UTC
RE: [Xen-devel] [PATCH] Values of cpu_weight and cpu_cap are lost after xend restart
Hi Olaf, yes you are right, it's my mistake. The patch is not complete. After reading the managed SXP file the values of weight and cap are of type string not of type int. The original code (before my patch) overwrites these values with the given weight/cap or the default values. Both values have type int. My patch leaves the values taken from managed SXP unchanged, if already set, so they have type string not int! I have to convert the values of weight/cap to int. I will extend the patch. Thanks Lutz -----Original Message----- From: Olaf Hering [mailto:olaf@aepfle.de] Sent: Friday, August 27, 2010 2:54 PM To: Dube, Lutz Cc: xen-devel@lists.xensource.com Subject: Re: [Xen-devel] [PATCH] Values of cpu_weight and cpu_cap are lost after xend restart On Tue, Aug 10, Dube, Lutz wrote:> # 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.Lutz, does xen-unstable actually work for you after this change is applied? xm start <guest> fails for me on SLES11, as first reported here: http://lists.xensource.com/archives/html/xen-devel/2010-08/msg01461.html My python skills are not good enough to fix it, and this change looks like the only one between rev 21976:22019 that touches self.getWeight() related code in XendDomainInfo.py [2010-08-27 14:36:38 4654] ERROR (XendDomainInfo:488) VM start failed Traceback (most recent call last): File "/usr/lib64/python2.6/site-packages/xen/xend/XendDomainInfo.py", line 473, in start XendTask.log_progress(0, 30, self._constructDomain) File "/usr/lib64/python2.6/site-packages/xen/xend/XendTask.py", line 209, in log_progress retval = func(*args, **kwds) File "/usr/lib64/python2.6/site-packages/xen/xend/XendDomainInfo.py", line 2618, in _constructDomain assert type(weight) == int AssertionError Olaf _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel