added valgrind launcher
authorimarom <[email protected]>
Wed, 30 Nov 2016 08:52:54 +0000 (10:52 +0200)
committerimarom <[email protected]>
Wed, 30 Nov 2016 08:52:54 +0000 (10:52 +0200)
Signed-off-by: imarom <[email protected]>
scripts/t-rex-64-valgrind [new file with mode: 0755]

diff --git a/scripts/t-rex-64-valgrind b/scripts/t-rex-64-valgrind
new file mode 100755 (executable)
index 0000000..a770895
--- /dev/null
@@ -0,0 +1,66 @@
+#! /bin/bash
+if [ "$(id -u)" != 0 ]; then
+  echo 'Error: Please run as root (sudo etc.)'
+  exit -1
+fi
+
+INPUT_ARGS=${@//[\96\97]/-} # replace bizarre minuses with normal one
+
+./trex-cfg $INPUT_ARGS
+RESULT=$?
+if [ $RESULT -ne 0 ]; then
+  exit $RESULT
+fi
+
+pci_desc_re='^(\S+) - (.+)$'
+source find_python.sh
+while read line
+do
+    if [[ "$line" =~ $pci_desc_re ]]; then
+        pci_name="pci$(echo ${BASH_REMATCH[1]} | tr ':' '_' | tr '.' '_')" # make alphanumeric name
+        export $pci_name="${BASH_REMATCH[2]}"
+    fi
+done <<< "$($PYTHON dpdk_setup_ports.py --dump-pci-description)"
+
+cd $(dirname $0)
+export LD_LIBRARY_PATH=$PWD
+
+#Add dummy lib in case we don't find it, e.g. there is no OFED installed  
+if ldd ./_t-rex-64  | grep "libibverbs.so" | grep -q "not found"; then 
+export LD_LIBRARY_PATH=$PWD:$PWD/dumy_libs                           
+fi
+            
+export VALGRIND_LIB=/auto/proj-pcube-b/apps/PL-b/tools/valgrind-dpdk/lib/valgrind
+
+if [ -t 0 ] && [ -t 1 ]; then
+    export is_tty=true
+    saveterm="$(stty -g)"
+else
+    export is_tty=false
+fi
+
+# if we have a new core run optimized trex 
+if  grep -q avx /proc/cpuinfo ; then
+    /auto/proj-pcube-b/apps/PL-b/tools/valgrind-dpdk/bin/valgrind ./_t-rex-64 $INPUT_ARGS
+    RESULT=$?
+    if [ $RESULT -eq 132 ]; then
+        echo " WARNING this program is optimized for the new Intel processors.  "
+        echo " try the ./t-rex-64-o application that should work for any Intel processor but might be slower. "
+        echo " try to run t-rex-64-o .. "
+        /auto/proj-pcube-b/apps/PL-b/tools/valgrind-dpdk/bin/valgrind ./_t-rex-64-o $INPUT_ARGS
+        RESULT=$?
+    fi
+else
+        /auto/proj-pcube-b/apps/PL-b/tools/valgrind-dpdk/bin/valgrind ./_t-rex-64-o $INPUT_ARGS
+        RESULT=$?
+fi
+
+if $is_tty; then
+    stty $saveterm
+fi
+
+if [ $RESULT -ne 0 ]; then
+  exit $RESULT
+fi
+
+