Commit 703bfd37 authored by Magnus Karlsson's avatar Magnus Karlsson Committed by Alexei Starovoitov

selftests/xsk: add debug option for creating netdevs

Add a new option to the test_xsk.sh script that only creates the two
veth netdevs and the extra namespace, then exits without running any
tests. The failed test can then be executed in the debugger without
having to create the netdevs and namespace manually. For ease-of-use,
the veth netdevs to use are printed so they can be copied into the
debugger.

Here is an example how to use it:

> sudo ./test_xsk.sh -d

veth10 veth11

> gdb xskxceiver

In gdb:

run -i veth10 -i veth11

And now the test cases can be debugged with gdb.

If you want to debug the test suite on a real NIC in loopback mode,
there is no need to use this feature as you already know the netdev of
your NIC.
Signed-off-by: default avatarMagnus Karlsson <magnus.karlsson@intel.com>
Acked-by: default avatarMaciej Fijalkowski <maciej.fijalkowski@intel.com>
Link: https://lore.kernel.org/r/20230111093526.11682-7-magnus.karlsson@gmail.comSigned-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
parent a4ca6227
...@@ -74,6 +74,9 @@ ...@@ -74,6 +74,9 @@
# Run and dump packet contents: # Run and dump packet contents:
# sudo ./test_xsk.sh -D # sudo ./test_xsk.sh -D
# #
# Set up veth interfaces and leave them up so xskxceiver can be launched in a debugger:
# sudo ./test_xsk.sh -d
#
# Run test suite for physical device in loopback mode # Run test suite for physical device in loopback mode
# sudo ./test_xsk.sh -i IFACE # sudo ./test_xsk.sh -i IFACE
...@@ -81,11 +84,12 @@ ...@@ -81,11 +84,12 @@
ETH="" ETH=""
while getopts "vDi:" flag while getopts "vDi:d" flag
do do
case "${flag}" in case "${flag}" in
v) verbose=1;; v) verbose=1;;
D) dump_pkts=1;; D) dump_pkts=1;;
d) debug=1;;
i) ETH=${OPTARG};; i) ETH=${OPTARG};;
esac esac
done done
...@@ -174,6 +178,11 @@ statusList=() ...@@ -174,6 +178,11 @@ statusList=()
TEST_NAME="XSK_SELFTESTS_${VETH0}_SOFTIRQ" TEST_NAME="XSK_SELFTESTS_${VETH0}_SOFTIRQ"
if [[ $debug -eq 1 ]]; then
echo "-i" ${VETH0} "-i" ${VETH1},${NS1}
exit
fi
exec_xskxceiver exec_xskxceiver
if [ -z $ETH ]; then if [ -z $ETH ]; then
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment