mirror of
https://github.com/xen-project/xen.git
synced 2026-10-29 10:40:03 +01:00
Merged.
This commit is contained in:
commit
da5f951216
4 files changed
+34
-18
No files matched your search
@@ -437,10 +437,18 @@ class XendDomainInfo:
|
||||
defaultInfo('on_crash', lambda: "restart")
|
||||
defaultInfo('cpu', lambda: None)
|
||||
defaultInfo('cpu_weight', lambda: 1.0)
|
||||
defaultInfo('vcpus', lambda: int(1))
|
||||
|
||||
self.info['vcpus'] = int(self.info['vcpus'])
|
||||
# some domains don't have a config file (e.g. dom0 )
|
||||
# to set number of vcpus so we derive available cpus
|
||||
# from max_vcpu_id which is present for running domains.
|
||||
if not self.infoIsSet('vcpus') and self.infoIsSet('max_vcpu_id'):
|
||||
avail = int(self.info['max_vcpu_id'])+1
|
||||
else:
|
||||
avail = int(1)
|
||||
|
||||
defaultInfo('vcpus', lambda: avail)
|
||||
defaultInfo('online_vcpus', lambda: self.info['vcpus'])
|
||||
defaultInfo('max_vcpu_id', lambda: self.info['vcpus']-1)
|
||||
defaultInfo('vcpu_avail', lambda: (1 << self.info['vcpus']) - 1)
|
||||
|
||||
defaultInfo('memory', lambda: 0)
|
||||
@@ -927,6 +935,7 @@ class XendDomainInfo:
|
||||
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']
|
||||
@@ -943,16 +952,13 @@ class XendDomainInfo:
|
||||
|
||||
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']]]
|
||||
['vcpu_count', self.info['online_vcpus']]]
|
||||
|
||||
for i in range(0, self.info['vcpus']):
|
||||
for i in range(0, self.info['max_vcpu_id']+1):
|
||||
info = xc.vcpu_getinfo(self.domid, i)
|
||||
|
||||
sxpr.append(['vcpu',
|
||||
@@ -962,8 +968,7 @@ class XendDomainInfo:
|
||||
['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
|
||||
|
||||
|
||||
@@ -260,13 +260,13 @@ def parse_doms_info(info):
|
||||
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),
|
||||
}
|
||||
|
||||
|
||||
|
||||