harness: adding k1om to build archs for babybel adapting phi boot test
authorReto Achermann <reto.achermann@inf.ethz.ch>
Fri, 26 Jun 2015 07:10:38 +0000 (09:10 +0200)
committerReto Achermann <reto.achermann@inf.ethz.ch>
Fri, 26 Jun 2015 07:10:38 +0000 (09:10 +0200)
Signed-off-by: Reto Achermann <reto.achermann@inf.ethz.ch>

tools/harness/machines/eth.py
tools/harness/machines/eth_machinedata.py
tools/harness/tests/xeonphi.py

index 23a986a..689a1d9 100644 (file)
@@ -38,11 +38,23 @@ class ETHMachine(Machine):
     def get_ncores(self):
         return self._eth_machines[self.name]['ncores']
 
-    def get_host_ncores(self):
-        if 'host_ncores' in self._eth_machines[self.name] :
-            return self._eth_machines[self.name]['host_ncores']
+    def get_xphi_ncores(self):
+        if 'xphi_ncores' in self._eth_machines[self.name] :
+            return self._eth_machines[self.name]['xphi_ncores']
         else :
-            return self._eth_machines[self.name]['ncores']
+            return 0
+
+    def get_xphi_ncards(self):
+        if 'xphi_ncards' in self._eth_machines[self.name] :
+            return self._eth_machines[self.name]['xphi_ncards']
+        else :
+            return 0
+
+    def get_xphi_ram_gb(self):
+        if 'xphi_ram_gb' in self._eth_machines[self.name] :
+            return self._eth_machines[self.name]['xphi_ram_gb']
+        else :
+            return 0
 
     def get_cores_per_socket(self):
         return self._eth_machines[self.name]['cores_per_socket']
@@ -50,11 +62,11 @@ class ETHMachine(Machine):
     def get_tickrate(self):
         return self._eth_machines[self.name]['tickrate']
 
-    def get_host_tickrate(self):
-        if 'host_tickrate' in self._eth_machines[self.name] :
-            return self._eth_machines[self.name]['host_tickrate']
+    def get_xphi_tickrate(self):
+        if 'xphi_tickrate' in self._eth_machines[self.name] :
+            return self._eth_machines[self.name]['xphi_tickrate']
         else :
-            return self._eth_machines[self.name]['tickrate']
+            return 0
 
     def get_perfcount_type(self):
         return self._eth_machines[self.name]['perfcount_type']
index 1aff589..cdf9a24 100644 (file)
@@ -116,38 +116,54 @@ machines = dict({
     'babybel1': {'ncores'          : 20,
                 'machine_name'    : 'babybel1',
                 'bootarch'        : 'x86_64',
-                'buildarchs'      : ['x86_64', 'x86_32'],
+                'buildarchs'      : ['x86_64', 'x86_32', 'k1om'],
                 'cores_per_socket': 10,
                 'perfcount_type'  : 'intel',
                 'tickrate'        : 2500,
-                'boot_timeout'    : 360},
+                'boot_timeout'    : 360,
+                'xphi_ncores'     : 57,
+                'xphi_ncards'     : 2,
+                'xphi_tickrate'   : 1140,
+                'xphi_ram_gb'     : 6},
 
     'babybel2': {'ncores'          : 20,
                 'machine_name'    : 'babybel2',
                 'bootarch'        : 'x86_64',
-                'buildarchs'      : ['x86_64', 'x86_32'],
+                'buildarchs'      : ['x86_64', 'x86_32', 'k1om'],
                 'cores_per_socket': 10,
                 'perfcount_type'  : 'intel',
                 'tickrate'        : 2500,
-                'boot_timeout'    : 360},
+                'boot_timeout'    : 360,
+                'xphi_ncores'     : 57,
+                'xphi_ncards'     : 2,
+                'xphi_tickrate'   : 1140,
+                'xphi_ram_gb'     : 6},
 
     'babybel3': {'ncores'          : 20,
                 'machine_name'    : 'babybel3',
                 'bootarch'        : 'x86_64',
-                'buildarchs'      : ['x86_64', 'x86_32'],
+                'buildarchs'      : ['x86_64', 'x86_32', 'k1om'],
                 'cores_per_socket': 10,
                 'perfcount_type'  : 'intel',
                 'tickrate'        : 2500,
-                'boot_timeout'    : 360},
+                'boot_timeout'    : 360,
+                'xphi_ncores'     : 57,
+                'xphi_ncards'     : 2,
+                'xphi_tickrate'   : 1140,
+                'xphi_ram_gb'     : 6},
 
     'babybel4': {'ncores'          : 20,
                 'machine_name'    : 'babybel4',
                 'bootarch'        : 'x86_64',
-                'buildarchs'      : ['x86_64', 'x86_32'],
+                'buildarchs'      : ['x86_64', 'x86_32', 'k1om'],
                 'cores_per_socket': 10,
                 'perfcount_type'  : 'intel',
                 'tickrate'        : 2500,
-                'boot_timeout'    : 360},
+                'boot_timeout'    : 360,
+                'xphi_ncores'     : 57,
+                'xphi_ncards'     : 2,
+                'xphi_tickrate'   : 1140,
+                'xphi_ram_gb'     : 6},
 
     'nos4-32'   : {'ncores'      : 4,
                    'machine_name' : 'nos4',
index 510f402..ccc9053 100644 (file)
@@ -20,10 +20,10 @@ from results import PassFailResult
 #module /" + machine.get_tftp_subdir() + "/x86_64/sbin/xeon_phi_mgr
 
 @tests.add_test
-class XeonPhi_Spawn_test(TestCommon):
+class XeonPhi_Boot_Test(TestCommon):
     '''Xeon Phi Spawn test'''
-    name = "xeon_phi_spawn"
-    nphi = 2
+    name = "xeon_phi_boot"
+    nphi = 0;
 
     def set_xeon_phi_bootmodules(self, build_dir, machine):
         fullpath = os.path.join(machine.get_tftp_dir(), 'menu.lst.k1om')
@@ -62,16 +62,18 @@ class XeonPhi_Spawn_test(TestCommon):
 
 
     def setup(self, build, machine, testdir) :
-        super(XeonPhi_Spawn_test, self).setup(build, machine, testdir)
+        super(XeonPhi_Boot_Test, self).setup(build, machine, testdir)
 
         # setup menu.lst.k1om
         menulst = os.path.join(machine.get_tftp_dir(), "menu.lst.k1om")
         if (os.path.isfile(menulst)) :
             os.remove(menulst)
         self.set_xeon_phi_bootmodules(build.build_dir, machine)
+        self.nphi = machine.get_xphi_ncards()
+        
 
     def get_build_targets(self, build, machine):
-        targets = super(XeonPhi_Spawn_test, self).get_build_targets(build, machine)
+        targets = super(XeonPhi_Boot_Test, self).get_build_targets(build, machine)
         targets.append('k1om/sbin/weever')
         targets.append('k1om/sbin/cpu')
         targets.append('k1om/sbin/init')
@@ -93,10 +95,10 @@ class XeonPhi_Spawn_test(TestCommon):
         menulst = os.path.join(machine.get_tftp_dir(), "menu.lst.k1om")
         if (os.path.isfile(menulst)) :
             os.remove(menulst)
-        super(XeonPhi_Spawn_test, self).cleanup(machine)        
+        super(XeonPhi_Boot_Test, self).cleanup(machine)        
 
     def get_modules(self, build, machine):
-        modules = super(XeonPhi_Spawn_test, self).get_modules(build, machine)
+        modules = super(XeonPhi_Boot_Test, self).get_modules(build, machine)
         modules.add_module("xeon_phi_mgr", [""])
         modules.add_module("xeon_phi", ["auto", 
                                         "--tftp=tftp://10.110.4.4:69",
@@ -110,7 +112,7 @@ class XeonPhi_Spawn_test(TestCommon):
 
     def is_finished(self, line):
         #m = re.search("Xeon Phi operational: xeon_phi.([0-9]).ready", line)
-        m = re.search("Xeon Phi operational: xeon_phi.1.ready", line)
+        m = re.search("Xeon Phi operational: xeon_phi." + str(self.nphi - 1) + ".ready", line)
         if m :
             return True
         else :
@@ -120,7 +122,7 @@ class XeonPhi_Spawn_test(TestCommon):
         return "Xeon Phi operational: xeon_phi.([0-9]).ready"
 
     def boot(self, *args):
-        super(XeonPhi_Spawn_test, self).boot(*args)
+        super(XeonPhi_Boot_Test, self).boot(*args)
 #        self.set_timeout(NFS_TIMEOUT)
 
     def process_data(self, testdir, rawiter):
@@ -128,7 +130,7 @@ class XeonPhi_Spawn_test(TestCommon):
         lastline = ''
         passed = False;
         for line in rawiter:
-            m = re.search("Xeon Phi operational: xeon_phi.1.ready", line)
+            m = re.search("Xeon Phi operational: xeon_phi." + str(self.nphi - 1) + ".ready", line)
             if m :
                 passed = True