WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

[Xen-devel] [PATCH] xm-test: update enforce_dom0_cpus testcase

To: xen-devel@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-devel] [PATCH] xm-test: update enforce_dom0_cpus testcase
From: Ryan Harper <ryanh@xxxxxxxxxx>
Date: Tue, 9 May 2006 14:43:04 -0500
Cc: Ian Pratt <m+Ian.Pratt@xxxxxxxxxxxx>, "Krysan, Susan" <KRYSANS@xxxxxxxxxx>, "Puthiyaparambil, Aravindh" <aravindh.puthiyaparambil@xxxxxxxxxx>, "Subrahmanian, Raj" <raj.subrahmanian@xxxxxxxxxx>, "Vessey, Bruce A" <Bruce.Vessey@xxxxxxxxxx>, "Carb, Brian A" <Brian.Carb@xxxxxxxxxx>
Delivery-date: Tue, 09 May 2006 12:43:38 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
In-reply-to: <20060509160414.GH28945@xxxxxxxxxx>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
References: <B05D2E415E8CC94897BB44233D14EE6803EC099E@xxxxxxxxxxxxxxxxxxxxxxxxxxxx> <20060509160414.GH28945@xxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Mutt/1.5.6+20040907i
I chose to update the test to SKIP if dom0 isn't proper configured
which at this point means SMP host and dom0 with at least 2 VCPUs
online.  Also I noticed that the test was still using vcpu-enable which
is no longer available via xm; we use vcpu-set.  This patch fixes the
issue where after successfully running the test, dom0's vcpu state was
not restored.  Updated some comments and lines that exceeded 80 columns.

-- 
Ryan Harper
Software Engineer; Linux Technology Center
IBM Corp., Austin, Tx
(512) 838-9253   T/L: 678-9253
ryanh@xxxxxxxxxx


diffstat output:
 01_enforce_dom0_cpus_basic_pos.py |   55 ++++++++++++++++++++++++--------------
 1 files changed, 36 insertions(+), 19 deletions(-)

Signed-off-by: Ryan Harper <ryanh@xxxxxxxxxx>
---
# HG changeset patch
# User Ryan Harper <ryanh@xxxxxxxxxx>
# Node ID 279b674363bc78a284284bd62b9a0e2b5c65acb6
# Parent  1e3977e029fddc1e53995a3502d590f8a07e5c62
Fix up enforce_dom0_cpu test case to check that dom0 has at least 2 vcpus
online.  Also fix bogus call to vcpu-enable; xm now uses vcpu-set as method for
enable/disable of vcpus.  Previously after a successful test run, this test
would not leave dom0 in the same state as it was when the test started.  Also
some comment language changes and 80 column formatting.

diff -r 1e3977e029fd -r 279b674363bc 
tools/xm-test/tests/enforce_dom0_cpus/01_enforce_dom0_cpus_basic_pos.py
--- a/tools/xm-test/tests/enforce_dom0_cpus/01_enforce_dom0_cpus_basic_pos.py   
Mon May  8 18:21:41 2006
+++ b/tools/xm-test/tests/enforce_dom0_cpus/01_enforce_dom0_cpus_basic_pos.py   
Tue May  9 19:19:47 2006
@@ -4,20 +4,23 @@
 # Authors: Dan Smith <danms@xxxxxxxxxx>
 #          Ryan Harper <ryanh@xxxxxxxxxx>
 
-# 1) Make sure we have a multi cpu system
+# 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 list -v to see that only 1 cpu is online for dom0
-# 7) Restart xend with default config
+# 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 config
 
 import sys
 import re
 import time
 import os
 
-# what value should dom0_cpus be enforced?
+# what value should dom0_cpus enforce?
 enforce_dom0_cpus=1
 
 from XmTestLib import *
@@ -25,12 +28,19 @@
 check_status = 1
 max_tries = 10
 
-# 1) Make sure we have a multi cpu system
+# 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 dom0
+dom0_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=1
@@ -65,26 +75,33 @@
 if output != str(enforce_dom0_cpus):
     os.unsetenv("XEND_CONFIG")
     restartXend()
-    FAIL("/proc/cpuinfo says xend didn't enforce dom0_cpus (%s != %s)" 
%(output, enforce_dom0_cpus))
+    FAIL("/proc/cpuinfo says xend didn't enforce dom0_cpus (%s != 
%s)"%(output, 
+                                                             
enforce_dom0_cpus))
 
-# 7) count number of online cpus and see that it matches enforce value
-dom0vcpus = getVcpuInfo("Domain-0")
-num_online = len(filter(lambda x: x >= 0, dom0vcpus.values()))
+# 6) count number of online cpus and see that it matches enforce value
+num_online = int(getDomInfo("Domain-0", "VCPUs"))
 if num_online != enforce_dom0_cpus:
     os.unsetenv("XEND_CONFIG")
     restartXend()
-    FAIL("xm says xend didn't enforce dom0_cpus (%s != %s)" %(num_online, 
enforce_dom0_cpus))
+    FAIL("xm says xend didn't enforce dom0_cpus (%s != %s)" %(num_online, 
+                                                             
enforce_dom0_cpus))
 
-# restore dead processors 
-for (k,v) in zip(dom0vcpus.keys(),dom0vcpus.values()):
-    if v == -1:
-        status, output = traceCommand("xm vcpu-enable 0 %s"%(k))
-        if check_status and status != 0:
-            os.unsetenv("XEND_CONFIG")
-            restartXend()
-            FAIL("\"%s\" returned invalid %i != 0" %(cmd,status))
+# 7) restore dead processors 
+status, output = traceCommand("xm vcpu-set 0 %s"%(dom0_online_vcpus))
+if check_status and status != 0:
+    os.unsetenv("XEND_CONFIG")
+    restartXend()
+    FAIL("\"%s\" returned invalid %i != 0" %(cmd,status))
 
-# Restart xend with default config
+# check restore worked
+num_online = int(getDomInfo("Domain-0", "VCPUs"))
+if num_online != dom0_online_vcpus:
+    os.unsetenv("XEND_CONFIG")
+    restartXend()
+    FAIL("failed to restore dom0's VCPUs")
+
+
+# 8) Restart xend with default config
 os.unsetenv("XEND_CONFIG")
 restartXend()
 

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