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@xxxxxxxxxx
diffstat output:
xend/XendDomainInfo.py | 15 +++++++--------
xm/main.py | 14 +++++++-------
2 files changed, 14 insertions(+), 15 deletions(-)
Signed-off-by: Ryan Harper <ryanh@xxxxxxxxxx>
---
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@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|