This patch fixes a number of vcpu related issues.
1. xm vcpu-list now shows info for all vcpus by using
info[''max_vcpu_id'']+1 as end of the range to query
vcpu_info.
2. Add new vcpu fields, online_vcpus, max_vcpu_id to
XendDomainInfo.sxpr()
3. Remove filter_cpump() which isn''t needed now that
the per vcpu cpumap field is correct.
4. Update xm/main.py to use online_vcpus as the number
vcpus to display in list.
--
Ryan Harper
Software Engineer; Linux Technology Center
IBM Corp., Austin, Tx
(512) 838-9253 T/L: 678-9253
ryanh@us.ibm.com
diffstat output:
xend/XendDomainInfo.py | 15 +++++++--------
xm/main.py | 14 +++++++-------
2 files changed, 14 insertions(+), 15 deletions(-)
Signed-off-by: Ryan Harper <ryanh@us.ibm.com>
---
diff -r 38f64b8f5839 tools/python/xen/xend/XendDomainInfo.py
--- a/tools/python/xen/xend/XendDomainInfo.py Thu Nov 3 23:27:01 2005
+++ b/tools/python/xen/xend/XendDomainInfo.py Fri Nov 4 15:25:25 2005
@@ -426,8 +426,10 @@
defaultInfo(''cpu'', lambda: None)
defaultInfo(''cpu_weight'', lambda: 1.0)
defaultInfo(''vcpus'', lambda: int(1))
+ defaultInfo(''online_vcpus'', lambda:
self.info[''vcpus''])
self.info[''vcpus''] =
int(self.info[''vcpus''])
+ defaultInfo(''max_vcpu_id'', lambda:
self.info[''vcpus'']-1)
defaultInfo(''vcpu_avail'', lambda: (1 <<
self.info[''vcpus'']) - 1)
defaultInfo(''bootloader'', lambda: None)
@@ -963,6 +965,7 @@
if self.infoIsSet(''cpu_time''):
sxpr.append([''cpu_time'',
self.info[''cpu_time'']/1e9])
sxpr.append([''vcpus'',
self.info[''vcpus'']])
+ sxpr.append([''online_vcpus'',
self.info[''online_vcpus'']])
if self.infoIsSet(''start_time''):
up_time = time.time() - self.info[''start_time'']
@@ -979,16 +982,13 @@
def getVCPUInfo(self):
try:
- def filter_cpumap(map, max):
- return filter(lambda x: x >= 0, map[0:max])
-
# We include the domain name and ID, to help xm.
sxpr = [''domain'',
[''domid'', self.domid],
[''name'',
self.info[''name'']],
- [''vcpu_count'',
self.info[''vcpus'']]]
-
- for i in range(0, self.info[''vcpus'']):
+ [''vcpu_count'',
self.info[''online_vcpus'']]]
+
+ for i in range(0, self.info[''max_vcpu_id'']+1):
info = xc.vcpu_getinfo(self.domid, i)
sxpr.append([''vcpu'',
@@ -998,8 +998,7 @@
[''running'',
info[''running'']],
[''cpu_time'',
info[''cpu_time''] / 1e9],
[''cpu'',
info[''cpu'']],
- [''cpumap'',
filter_cpumap(info[''cpumap''],
-
self.info[''vcpus''])]])
+ [''cpumap'',
info[''cpumap'']]])
return sxpr
diff -r 38f64b8f5839 tools/python/xen/xm/main.py
--- a/tools/python/xen/xm/main.py Thu Nov 3 23:27:01 2005
+++ b/tools/python/xen/xm/main.py Fri Nov 4 15:25:25 2005
@@ -260,13 +260,13 @@
return t(sxp.child_value(info, n, d))
return {
- ''dom'' : get_info(''domid'',
int, -1),
- ''name'' : get_info(''name'',
str, ''??''),
- ''mem'' : get_info(''memory'',
int, 0),
- ''vcpus'' : get_info(''vcpus'',
int, 0),
- ''state'' : get_info(''state'',
str, ''??''),
- ''cpu_time'' : get_info(''cpu_time'',
float, 0),
- ''ssidref'' : get_info(''ssidref'',
int, 0),
+ ''dom'' : get_info(''domid'',
int, -1),
+ ''name'' : get_info(''name'',
str, ''??''),
+ ''mem'' : get_info(''memory'',
int, 0),
+ ''vcpus'' :
get_info(''online_vcpus'', int, 0),
+ ''state'' : get_info(''state'',
str, ''??''),
+ ''cpu_time'' : get_info(''cpu_time'',
float, 0),
+ ''ssidref'' : get_info(''ssidref'',
int, 0),
}
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel