[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] Make dom0_enforce_cpus() use vcpu_hotplug rather than directly modifying the sysfs entries.
# HG changeset patch # User cl349@xxxxxxxxxxxxxxxxxxxx # Node ID 8cba45a77249ee2da7f694b2467fb66392a6e4b1 # Parent a4cf3e17bb25e03a02f1c2e0a90c73402d5c2af8 Make dom0_enforce_cpus() use vcpu_hotplug rather than directly modifying the sysfs entries. Directly modifying the sysfs entries causes the xenstore state of a cpu's availability to be incorrect. Also slightly modify the dom0-cpus description in the xend-config. Rather than specifying which dom0 vcpus are to be used, it is now a target of how many vcpus to use as pinvcpu ops are the preferred method for setting which physical cpu a vcpu uses. Signed-off-by: Ryan Harper <ryanh@xxxxxxxxxx> Signed-off-by: Christian Limpach <Christian.Limpach@xxxxxxxxxxxx> diff -r a4cf3e17bb25 -r 8cba45a77249 tools/examples/xend-config.sxp --- a/tools/examples/xend-config.sxp Fri Sep 16 18:59:59 2005 +++ b/tools/examples/xend-config.sxp Fri Sep 16 19:08:36 2005 @@ -49,6 +49,6 @@ # If dom0-min-mem=0, dom0 will never balloon out. (dom0-min-mem 0) -# In SMP system, dom0 will use only CPUs in range [1,dom0-cpus] +# In SMP system, dom0 will use dom0-cpus # of CPUS # If dom0-cpus = 0, dom0 will take all cpus available (dom0-cpus 0) diff -r a4cf3e17bb25 -r 8cba45a77249 tools/python/xen/xend/XendDomain.py --- a/tools/python/xen/xend/XendDomain.py Fri Sep 16 18:59:59 2005 +++ b/tools/python/xen/xend/XendDomain.py Fri Sep 16 19:08:36 2005 @@ -155,6 +155,7 @@ if not dom0: dom0 = self.domain_unknown(0) dom0.dom0_init_store() + dom0.dom0_enforce_cpus() def close(self): pass diff -r a4cf3e17bb25 -r 8cba45a77249 tools/python/xen/xend/XendDomainInfo.py --- a/tools/python/xen/xend/XendDomainInfo.py Fri Sep 16 18:59:59 2005 +++ b/tools/python/xen/xend/XendDomainInfo.py Fri Sep 16 19:08:36 2005 @@ -1120,6 +1120,26 @@ # get run-time value of vcpus and update store self.configure_vcpus(dom_get(self.domid)['vcpus']) + def dom0_enforce_cpus(self): + dom = 0 + # get max number of cpus to use for dom0 from config + from xen.xend import XendRoot + xroot = XendRoot.instance() + target = int(xroot.get_dom0_cpus()) + log.debug("number of cpus to use is %d" % (target)) + + # target = 0 means use all processors + if target > 0: + # count the number of online vcpus (cpu values in v2c map >= 0) + vcpu_to_cpu = dom_get(dom)['vcpu_to_cpu'] + vcpus_online = len(filter(lambda x: x >= 0, vcpu_to_cpu)) + log.debug("found %d vcpus online" % (vcpus_online)) + + # disable any extra vcpus that are online over the requested target + for vcpu in range(target, vcpus_online): + log.info("enforcement is disabling DOM%d VCPU%d" % (dom, vcpu)) + self.vcpu_hotplug(vcpu, 0) + def vm_field_ignore(_, _1, _2, _3): """Dummy config field handler used for fields with built-in handling. diff -r a4cf3e17bb25 -r 8cba45a77249 tools/python/xen/xend/server/SrvDaemon.py --- a/tools/python/xen/xend/server/SrvDaemon.py Fri Sep 16 18:59:59 2005 +++ b/tools/python/xen/xend/server/SrvDaemon.py Fri Sep 16 19:08:36 2005 @@ -298,7 +298,6 @@ return self.cleanup(kill=True) def run(self, status): - _enforce_dom0_cpus() try: log.info("Xend Daemon started") event.listenEvent(self) @@ -323,32 +322,6 @@ #sys.exit(rc) os._exit(rc) -def _enforce_dom0_cpus(): - dn = xroot.get_dom0_cpus() - - for d in glob.glob("/sys/devices/system/cpu/cpu*"): - cpu = int(os.path.basename(d)[3:]) - if (dn == 0) or (cpu < dn): - v = "1" - else: - v = "0" - try: - f = open("%s/online" %d, "r+") - c = f.read(1) - if (c != v): - if v == "0": - log.info("dom0 is trying to give back cpu %d", cpu) - else: - log.info("dom0 is trying to take cpu %d", cpu) - f.seek(0) - f.write(v) - f.close() - log.info("dom0 successfully enforced cpu %d", cpu) - else: - f.close() - except: - pass - def instance(): global inst try: _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |