Apply performance options for testpmd
[csit.git] / dpdk-tests / dpdk_scripts / cleanup_dpdk.sh
index 8ab9c6f..7961a5b 100755 (executable)
@@ -1,39 +1,63 @@
 #!/bin/bash
 
+set -x
+
+# Setting variables
+DPDK_VERSION=dpdk-17.02
 ROOTDIR=/tmp/openvpp-testing
+TESTPMDLOG=screenlog.0
 PWDDIR=$(pwd)
 
-TESTPMD_LOG=/tmp/testpmd.log
-TESTPMD_PID=/tmp/testpmd.pid
-
+# Setting command line arguments
 port1_driver=$1
 port1_pci=$2
 port2_driver=$3
 port2_pci=$4
 
-#kill the dpdk application
-sudo pkill testpmd
-sudo pkill l2fwd
-sudo pkill l3fwd
-sudo rm -f ${TESTPMD_PID}
+# Try to kill the testpmd
+sudo pgrep testpmd
+if [ $? -eq "0" ]; then
+    success=false
+    sudo pkill testpmd
+    echo "RC = $?"
+    for attempt in {1..5}; do
+        echo "Checking if testpmd is still alive, attempt nr ${attempt}"
+        sudo pgrep testpmd
+        if [ $? -eq "1" ]; then
+            echo "testpmd is dead"
+            success=true
+            break
+        fi
+        echo "testpmd is still alive, waiting 1 second"
+        sleep 1
+    done
+    if [ "$success" = false ]; then
+        echo "The command sudo pkill testpmd failed"
+        sudo pkill -9 testpmd
+        echo "RC = $?"
+        exit 1
+    fi
+else
+    echo "testpmd is not running"
+fi
+
+# Remove hugepages
 sudo rm -f /dev/hugepages/*
-cat ${TESTPMD_LOG}
 
-sleep 2
-
-cd ${ROOTDIR}/dpdk-16.07/
-./tools/dpdk-devbind.py -b ${port1_driver} ${port1_pci}
-./tools/dpdk-devbind.py -b ${port2_driver} ${port2_pci}
+# Unbind interfaces
+cd ${ROOTDIR}/${DPDK_VERSION}/
+sudo ./usertools/dpdk-devbind.py -b ${port1_driver} ${port1_pci} || \
+    { echo "Unbind ${port1_pci} failed"; exit 1; }
+sudo ./usertools/dpdk-devbind.py -b ${port2_driver} ${port2_pci} || \
+    { echo "Unbind ${port1_pci} failed"; exit 1; }
 
 sleep 2
 
-if1_name=`./tools/dpdk-devbind.py --s | grep "${port1_pci}" | sed -n 's/.*if=\(\S\)/\1/p' | awk -F' ' '{print $1}'`
-if2_name=`./tools/dpdk-devbind.py --s | grep "${port2_pci}" | sed -n 's/.*if=\(\S\)/\1/p' | awk -F' ' '{print $1}'`
-
-ifconfig ${if1_name} up
-ifconfig ${if2_name} up
+if1_name=`./usertools/dpdk-devbind.py --s | grep "${port1_pci}" | sed -n 's/.*if=\(\S\)/\1/p' | awk -F' ' '{print $1}'`
+if2_name=`./usertools/dpdk-devbind.py --s | grep "${port2_pci}" | sed -n 's/.*if=\(\S\)/\1/p' | awk -F' ' '{print $1}'`
 
-rmmod igb_uio
-rmmod uio
+# Remove igb_uio driver
+rmmod igb_uio || \
+    { echo "Removing igb_uio failed"; exit 1; }
 
-cd ${PWDDIR}
+cd ${PWDDIR}
\ No newline at end of file