Fix xm vcpu-pin for inactive managed domains

We cannot currently change cpu affinity definitions of inactive
managed domains by xm vcpu-pin command. This patch enables changing
cpu affinity definitions of inactive managed domains. However, we
cannot change cpu affinity definitions to each vcpu because we cannot
currently define cpu affinity definitions to each vcpu to domain
configuration definitions.  Therefore, we need to specify 'all' to
VCPU argument of xm vcpu-pin command.

Signed-off-by: Masaki Kanno <kanno.masaki@jp.fujitsu.com>
This commit is contained in:
Keir Fraser committed 2008-03-03 11:09:33 +00:00
1 parent a226d0f1bb
commit 4d5bf67dd1
2 files changed
+23 -7

No files matched your search

+17 -7
View File
@@ -1364,13 +1364,23 @@ class XendDomain:
# set the same cpumask for all vcpus
rc = 0
for v in vcpus:
try:
rc = xc.vcpu_setaffinity(dominfo.getDomid(), int(v), cpumap)
except Exception, ex:
log.exception(ex)
raise XendError("Cannot pin vcpu: %s to cpu: %s - %s" % \
(v, cpumap, str(ex)))
if dominfo._stateGet() in (DOM_STATE_RUNNING, DOM_STATE_PAUSED):
for v in vcpus:
try:
rc = xc.vcpu_setaffinity(dominfo.getDomid(), int(v), cpumap)
except Exception, ex:
log.exception(ex)
raise XendError("Cannot pin vcpu: %s to cpu: %s - %s" % \
(v, cpumap, str(ex)))
else:
# FIXME: if we could define cpu affinity definitions to
# each vcpu, reprogram the following processing.
if str(vcpu).lower() != "all":
raise XendError("Must specify 'all' to VCPU "
"for inactive managed domains")
dominfo.setCpus(cpumap)
self.managed_config_save(dominfo)
return rc
def domain_cpu_sedf_set(self, domid, period, slice_, latency, extratime,
+6
View File
@@ -1394,6 +1394,12 @@ class XendDomainInfo:
def setResume(self, isresume):
self._resume = isresume
def getCpus(self):
return self.info['cpus']
def setCpus(self, cpumap):
self.info['cpus'] = cpumap
def getCap(self):
return self.info['vcpus_params']['cap']
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.