⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 01_enforce_dom0_cpus_basic_pos.py

📁 xen虚拟机源代码安装包
💻 PY
字号:
#!/usr/bin/python# Copyright (C) International Business Machines Corp., 2005# Authors: Dan Smith <danms@us.ibm.com>#          Ryan Harper <ryanh@us.ibm.com># 1) Make sure we have a multi cpu system and dom0 has at #    least 2 vcpus online.# 2) clone standard config (/etc/xen/xend-config.sxp) # 3) modify clone with enforce_dom0_cpus=X# 4) restart xend with modified config# 5) check /proc/cpuinfo for cpu count# 6) check xm info 'VCPUs' field to see that only 'enforce_dom0_cpus' #    number of cpus are online in dom0# 7) Restore initial dom0 vcpu state# 8) Restart xend with default configimport sysimport reimport timeimport os# what value should dom0_cpus enforce?enforce_dom0_cpus=1from XmTestLib import *check_status = 1max_tries = 10def reset_vcpu_count():    status, output = traceCommand("xm vcpu-set 0 %s"%(dom0_online_vcpus))    if status != 0:        print "WARNING!!! Unable to set vcpus back to %s, please set manually"\            %(dom0_online_vcpus)# 1) Make sure we have a multi cpu system and dom0 has at least 2 vcpus online.if smpConcurrencyLevel() <= 1:    print "*** NOTE: This machine does not have more than one physical"    print "          or logical cpu.  The vcpu-disable test cannot be run!"    SKIP("Host not capable of running test")# count number of online vcpus in dom0dom0_online_vcpus = int(getDomInfo("Domain-0", "VCPUs"))if dom0_online_vcpus <= 1:    print "*** NOTE: DOM0 needs at least 2 VCPUs online to run this test"    print "          Please enable additional vcpus if possible via xm vcpu-set"    SKIP("Host state not capable of running test")    # 2) clone standard config (/etc/xen/xend-config.sxp) # 3) modify clone with enforce_dom0_cpus=1old_config="/etc/xen/xend-config.sxp"new_config ="/tmp/xend-config.sxp"cmd = "sed -e 's,dom0-cpus 0,dom0-cpus %s,' %s > %s" % (enforce_dom0_cpus,                                                        old_config,                                                        new_config)status, output = traceCommand(cmd)if check_status and status != 0:    FAIL("\"%s\" returned invalid %i != 0" %(cmd,status))# 4) restart xend with new configos.putenv("XEND_CONFIG", "/tmp/xend-config.sxp")status = restartXend()os.unsetenv("XEND_CONFIG")if check_status and status != 0:    ns, no = restartXend()    if ns != 0:        FAIL("Restarting xend isn't working: something is WAY broken")    else:        FAIL("\"%s\" returned invalid %i != 0" %(cmd,status))# 5) check /proc/cpuinfo for cpu count# It takes some time for the CPU count to change, on multi-proc systems, so check the number of procs in a loop for 30 seconds. #Sleep inside the loop for a second each time.timeout = 30starttime = time.time()while timeout + starttime > time.time():# Check /proc/cpuinfo    cmd = "grep \"^processor\" /proc/cpuinfo | wc -l"    status, output = traceCommand(cmd)    if check_status and status != 0:        reset_vcpu_count()        restartXend()        FAIL("\"%s\" returned invalid %i != 0" %(cmd,status))# Has it succeeded? If so, we can leave the loop    if output == str(enforce_dom0_cpus):        break# Sleep for 1 second before trying again    time.sleep(1)if output != str(enforce_dom0_cpus):    reset_vcpu_count()    restartXend()    FAIL("/proc/cpuinfo says xend didn't enforce dom0_cpus (%s != %s)"%(output,                                                              enforce_dom0_cpus))# 6) count number of online cpus and see that it matches enforce valuenum_online = int(getDomInfo("Domain-0", "VCPUs"))if num_online != enforce_dom0_cpus:    reset_vcpu_count()    restartXend()    FAIL("xm says xend didn't enforce dom0_cpus (%s != %s)" %(num_online,                                                              enforce_dom0_cpus))# 7) restore dead processors reset_vcpu_count()# check restore worked# Since this also takes time, we will do it in a loop with a 30 second timeout.timeout=30starttime=time.time()while timeout + starttime > time.time():     num_online = int(getDomInfo("Domain-0", "VCPUs"))    if num_online == dom0_online_vcpus:        break    time.sleep(1)if num_online != dom0_online_vcpus:    restartXend()    FAIL("failed to restore dom0's VCPUs")# 8) Restart xend with default configrestartXend()

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -