fix CSIT broken issue when numa_node value is -1 on single Socket platform 63/14663/3
authorYulong Pei <yulong.pei@intel.com>
Wed, 5 Sep 2018 15:19:42 +0000 (23:19 +0800)
committerPeter Mikus <pmikus@cisco.com>
Thu, 6 Sep 2018 06:21:10 +0000 (06:21 +0000)
Single Socket platform e.g. Intel Atom cpu based SOC platform with
Ubuntu 16.04.4(kernel 4.13.0-36-generic) or Centos 7.5 (kernel 3.10.0-862.el7),
value of /sys/bus/pci/devices/<pci_device_id>/numa_node is -1, this will
break CSIT performance test running, but for this kind of SOC platform,
it can consider that is not NUMA based platform, numa_node=-1 is reasonable,
so fix it at CSIT side, when numa_node=1 and the system's NUMA node count
is 1, set numa_node=0. DPDK also did it as this way.

Change-Id: I9ac23d3cece2f1489e38f05b50a462bb2ad9f661
Signed-off-by: Yulong Pei <yulong.pei@intel.com>
resources/libraries/python/InterfaceUtil.py

index 878edd6..290db1d 100644 (file)
@@ -26,7 +26,7 @@ from resources.libraries.python.VatExecutor import VatExecutor, VatTerminal
 from resources.libraries.python.VatJsonUtil import VatJsonUtil
 from resources.libraries.python.VPPUtil import VPPUtil
 from resources.libraries.python.parsers.JsonParser import JsonParser
-
+from resources.libraries.python.CpuUtils import CpuUtils
 
 class InterfaceUtil(object):
     """General utilities for managing interfaces"""
@@ -582,7 +582,10 @@ class InterfaceUtil(object):
                     try:
                         numa_node = int(out)
                         if numa_node < 0:
-                            raise ValueError
+                            if CpuUtils.cpu_node_count(node) == 1:
+                                numa_node = 0
+                            else:
+                                raise ValueError
                     except ValueError:
                         logger.trace('Reading numa location failed for: {0}'\
                             .format(if_pci))