From 39c94c3828af47d8a4c4c090ce0bac6e0566e424 Mon Sep 17 00:00:00 2001 From: Martin Klozik Date: Mon, 18 Sep 2017 10:58:37 +0100 Subject: CI: Update hugepages configuration Changes introduced by this patch: * Configure more hugepages to be used during CI run. * Fix detection of correct ovs-vswitchd execution. * Skip VPP shutdown overhead in case that VPP execution has failed. Change-Id: Id1badd61334141dcc331691af4a1401a09d06807 Signed-off-by: Martin Klozik --- ci/build-vsperf.sh | 25 +++++++++++++++---------- vswitches/ovs.py | 3 ++- vswitches/vpp_dpdk_vhost.py | 19 ++++++++++--------- 3 files changed, 27 insertions(+), 20 deletions(-) diff --git a/ci/build-vsperf.sh b/ci/build-vsperf.sh index eaab9977..b60a7fa7 100755 --- a/ci/build-vsperf.sh +++ b/ci/build-vsperf.sh @@ -127,18 +127,23 @@ function terminate_vsperf() { # $1 - directory with results function print_results() { for i in $TESTCASES ; do - RES_FILE=`ls -1 $1 | egrep "result_${i}_[0-9a-zA-Z\-]+.csv"` - - if [ "x$RES_FILE" != "x" -a -e "${1}/${RES_FILE}" ]; then - if grep ^FAILED "${1}/${RES_FILE}" &> /dev/null ; then + if [ ! -e $1 ] ; then + printf " %-70s %-6s\n" "result_${i}" "FAILED" + EXIT=$EXIT_TC_FAILED + else + RES_FILE=`ls -1 $1 | egrep "result_${i}_[0-9a-zA-Z\-]+.csv"` + + if [ "x$RES_FILE" != "x" -a -e "${1}/${RES_FILE}" ]; then + if grep ^FAILED "${1}/${RES_FILE}" &> /dev/null ; then + printf " %-70s %-6s\n" "result_${i}" "FAILED" + EXIT=$EXIT_TC_FAILED + else + printf " %-70s %-6s\n" "result_${i}" "OK" + fi + else printf " %-70s %-6s\n" "result_${i}" "FAILED" EXIT=$EXIT_TC_FAILED - else - printf " %-70s %-6s\n" "result_${i}" "OK" fi - else - printf " %-70s %-6s\n" "result_${i}" "FAILED" - EXIT=$EXIT_TC_FAILED fi done } @@ -423,7 +428,7 @@ function dependencies_check() { # configure hugepages function configure_hugepages() { HP_MAX=8192 - HP_REQUESTED=2048 + HP_REQUESTED=3072 HP_NR=`cat /sys/devices/system/node/node0/hugepages/hugepages-2048kB/nr_hugepages` HP_FREE=`cat /sys/devices/system/node/node0/hugepages/hugepages-2048kB/free_hugepages` # check if HP must be (re)configured diff --git a/vswitches/ovs.py b/vswitches/ovs.py index 12620e22..7e16c142 100644 --- a/vswitches/ovs.py +++ b/vswitches/ovs.py @@ -48,7 +48,8 @@ class IVSwitchOvs(IVSwitch, tasks.Process): self._vswitchd_pidfile_path = os.path.join(settings.getValue('TOOLS')['ovs_var_tmp'], "{}.pid".format(self._proc_name)) self._logger = logging.getLogger(__name__) - self._expect = r'bridge|INFO|{}'.format(self._proc_name) + # sign '|' must be escaped or avoided, otherwise it is handled as 'or' by regex + self._expect = r'bridge.INFO.{}'.format(self._proc_name) self._timeout = 30 self._bridges = {} self._vswitchd_args = ['--pidfile=' + self._vswitchd_pidfile_path, diff --git a/vswitches/vpp_dpdk_vhost.py b/vswitches/vpp_dpdk_vhost.py index 317f3798..2ac70a1a 100644 --- a/vswitches/vpp_dpdk_vhost.py +++ b/vswitches/vpp_dpdk_vhost.py @@ -158,16 +158,17 @@ class VppDpdkVhost(IVSwitch, tasks.Process): Kills ``vpp`` """ - # try to get VPP pid - output = self.run_vppctl(['show', 'version', 'verbose']) - match = re.search(r'Current PID:\s*([0-9]+)', output[0]) - if match: - vpp_pid = match.group(1) - tasks.terminate_task(vpp_pid, logger=self._logger) + if self.is_running(): + # try to get VPP pid + output = self.run_vppctl(['show', 'version', 'verbose']) + match = re.search(r'Current PID:\s*([0-9]+)', output[0]) + if match: + vpp_pid = match.group(1) + tasks.terminate_task(vpp_pid, logger=self._logger) - # in case, that pid was not detected or sudo envelope - # has not been terminated yet - tasks.Process.kill(self, signal, sleep) + # in case, that pid was not detected or sudo envelope + # has not been terminated yet + tasks.Process.kill(self, signal, sleep) def get_version(self): """See IVswitch for general description -- cgit 1.2.3-korg