xend: Restore scheduling parameters

Scheduling parameters are reset to default values when I restore
or migrate a domain.

Signed-off-by: Masaki Kanno <kanno.masaki@jp.fujitsu.com>
This commit is contained in:
Keir Fraser committed 2009-07-16 10:32:55 +01:00
1 parent 016a8a4a48
commit c7b525bb3c
2 files changed
+14 -7

No files matched your search

+4 -1
View File
@@ -1055,7 +1055,10 @@ class XendConfig(dict):
if domain.getDomid() is not None:
sxpr.append(['domid', domain.getDomid()])
if not legacy_only:
if legacy_only:
sxpr.append(['cpu_weight', int(self['vcpus_params'].get('weight', 256))])
sxpr.append(['cpu_cap', int(self['vcpus_params'].get('cap', 0))])
else:
for name, typ in XENAPI_CFG_TYPES.items():
if name in self and self[name] not in (None, []):
if typ == dict:
+10 -6
View File
@@ -465,17 +465,11 @@ class XendDomainInfo:
XendTask.log_progress(91, 100, self.refreshShutdown)
xendomains = XendDomain.instance()
xennode = XendNode.instance()
# save running configuration if XendDomains believe domain is
# persistent
if is_managed:
xendomains.managed_config_save(self)
if xennode.xenschedinfo() == 'credit':
xendomains.domain_sched_credit_set(self.getDomid(),
self.getWeight(),
self.getCap())
except:
log.exception('VM start failed')
self.destroy()
@@ -497,6 +491,7 @@ class XendDomainInfo:
# we just ignore it so that the domain can still be restored
log.warn("Cannot restore CPU affinity")
self._setSchedParams()
self._storeVmDetails()
self._createChannels()
self._createDevices()
@@ -2555,6 +2550,12 @@ class XendDomainInfo:
for v in range(0, self.info['VCPUs_max']):
xc.vcpu_setaffinity(self.domid, v, cpumask)
def _setSchedParams(self):
if XendNode.instance().xenschedinfo() == 'credit':
from xen.xend import XendDomain
XendDomain.instance().domain_sched_credit_set(self.getDomid(),
self.getWeight(),
self.getCap())
def _initDomain(self):
log.debug('XendDomainInfo.initDomain: %s %s',
@@ -2571,6 +2572,9 @@ class XendDomainInfo:
# distribution for NUMA systems.
self._setCPUAffinity()
# Set scheduling parameters.
self._setSchedParams()
# Use architecture- and image-specific calculations to determine
# the various headrooms necessary, given the raw configured
# values. maxmem, memory, and shadow are all in KiB.
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.