[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] [PATCH 1 of 5] Change getVcpuInfo to return more information


  • To: xen-devel <xen-devel@xxxxxxxxxxxxxxxxxxx>
  • From: Ryan Harper <ryanh@xxxxxxxxxx>
  • Date: Wed, 16 Aug 2006 15:49:35 -0500
  • Delivery-date: Wed, 16 Aug 2006 13:51:49 -0700
  • List-id: Xen developer discussion <xen-devel.lists.xensource.com>

3 files changed, 41 insertions(+), 10 deletions(-)
tools/xm-test/lib/XmTestLib/Xm.py                             |   31 ++++++++--
tools/xm-test/tests/vcpu-disable/01_vcpu-disable_basic_pos.py |   16 ++++-
tools/xm-test/tests/vcpu-pin/01_vcpu-pin_basic_pos.py         |    4 -


# HG changeset patch
# User Ryan Harper <ryanh@xxxxxxxxxx>
# Date 1155579355 18000
# Node ID 889b941effc8d050057a7edf3575067014e36d18
# Parent  ec03b24a2d83273ec62db8596506b80577a0e41e
Change getVcpuInfo to return more information

diff -r ec03b24a2d83 -r 889b941effc8 tools/xm-test/lib/XmTestLib/Xm.py
--- a/tools/xm-test/lib/XmTestLib/Xm.py Tue Aug 15 19:53:55 2006 +0100
+++ b/tools/xm-test/lib/XmTestLib/Xm.py Mon Aug 14 13:15:55 2006 -0500
@@ -170,16 +170,35 @@ def getVcpuInfo(domain):
 
     lines = output.split("\n")
 
-    vcpus = {}
-
+    vcpus = []
     for line in lines[1:]:
         cols = re.split(" +", line)
+        info = {}
+        info['domain'] = cols[0]
+        info['id'] = cols[1]
+        info['vcpu'] = cols[2]
         if cols[3] == '-':
-            vcpus[int(cols[2])] = None
+            info['cpu'] = None
         else:
-            vcpus[int(cols[2])] = int(cols[3])
+            info['cpu'] = cols[3]
+        info['state'] = cols[4]
+        info['time'] = cols[5]
+        # make sure we join 'any' 'cpu' into single value
+        info['affinity'] = " ".join(cols[6:])
+        vcpus.append(info)
 
     return vcpus
+
+def vcpu_to_cpu(domain):
+
+    vcpuinfo = getVcpuInfo(domain)
+    vcpus = {}
+
+    for info in vcpuinfo:
+        vcpus[int(info['vcpu'])] = info['cpu']
+
+    return vcpus
+
 
 def getInfo(key):
 
@@ -240,6 +259,6 @@ if __name__ == "__main__":
     print "Domain-0 CPU: " + cpu
     print "Domain-0 state: " + state
     
-    v = getVcpuInfo("Domain-0")
+    v = vcpu_to_cpu("Domain-0")
     for key in v.keys():
-        print "VCPU%i is on CPU %i" % (key, v[key])
+        print "VCPU%i is on CPU %s" % (key, v[key])
diff -r ec03b24a2d83 -r 889b941effc8 
tools/xm-test/tests/vcpu-disable/01_vcpu-disable_basic_pos.py
--- a/tools/xm-test/tests/vcpu-disable/01_vcpu-disable_basic_pos.py     Tue Aug 
15 19:53:55 2006 +0100
+++ b/tools/xm-test/tests/vcpu-disable/01_vcpu-disable_basic_pos.py     Mon Aug 
14 13:15:55 2006 -0500
@@ -49,6 +49,18 @@ except DomainError, e:
         print e.extra
     FAIL(str(e))
 
+# wait for both vcpus to come up
+vcpus_up = 0
+start = int(time.time())
+print "waiting for all VCPUS to come up"
+while vcpus_up != 2:
+    vcpus_up = len(filter(lambda x: x is not None, 
vcpu_to_cpu(domain.getName())))
+    # 20 second timeout
+    if int(time.time()) >= start+20:
+       FAIL("Failed to bring all VCPUS online for test");
+    time.sleep(1)
+    
+
 # Disable VCPU 1
 cmd = "xm vcpu-set %s 1" % domain.getName()
 status, output = safecmd(cmd)
@@ -57,7 +69,7 @@ if check_status and status != 0:
 
 # Wait for the change to become active
 for i in [1,2,3,4,5,6,7,8,9,10]:
-    domUvcpu1 = getVcpuInfo(domain.getName())[1]
+    domUvcpu1 = vcpu_to_cpu(domain.getName())[1]
     status, output = traceCommand("xm vcpu-list")
     if domUvcpu1 is None:
         break
@@ -74,7 +86,7 @@ if check_status and status != 0:
     FAIL("\"%s\" returned invalid %i != 0" %(cmd,status))
 
 for i in [1,2,3,4,5,6,7,8,9,10]:
-    domUvcpu1 = getVcpuInfo(domain.getName())[1]
+    domUvcpu1 = vcpu_to_cpu(domain.getName())[1]
     if domUvcpu1 is not None:
         break
     time.sleep(1)
diff -r ec03b24a2d83 -r 889b941effc8 
tools/xm-test/tests/vcpu-pin/01_vcpu-pin_basic_pos.py
--- a/tools/xm-test/tests/vcpu-pin/01_vcpu-pin_basic_pos.py     Tue Aug 15 
19:53:55 2006 +0100
+++ b/tools/xm-test/tests/vcpu-pin/01_vcpu-pin_basic_pos.py     Mon Aug 14 
13:15:55 2006 -0500
@@ -32,7 +32,7 @@ if status != 0:
 if status != 0:
     FAIL("xm vcpu-pin returned invalid %i != 0" % status)
 
-cpu = getVcpuInfo(domain.getName())[0]
+cpu = int(vcpu_to_cpu(domain.getName())[0])
 
 if cpu != 0:
     FAIL("failed to switch VCPU 0 to CPU 0")
@@ -42,7 +42,7 @@ if status != 0:
 if status != 0:
     FAIL("xm vcpu-pin returned invalid %i != 0" % status)
 
-cpu = getVcpuInfo(domain.getName())[0]
+cpu = int(vcpu_to_cpu(domain.getName())[0])
 
 if cpu != 1:
     FAIL("failed to switch VCPU 0 to CPU 1")

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.