Subject: Re: [PATCH bpf-next v4 00/10] seltests/xsk: various improvements to xskxceiver

From: Maciej Fijalkowski <[email-masked]>
Date: Thu, 14 Sep 2023 12:49:07 +0200

On Thu, Sep 14, 2023 at 10:48:47AM +0200, Magnus Karlsson wrote:
> This patch set implements several improvements to the xsk selftests
> test suite that I thought were useful while debugging the xsk
> multi-buffer code and tests. The largest new feature is the ability to
> be able to execute a single test instead of the whole test suite. This
> required some surgery on the current code, details below.
> 
> Anatomy of the path set:
> 
> 1: Print useful info on a per packet basis with the option -v
> 
> 2: Add a timeout in the transmission loop too. We only used to have
>    one for the Rx thread, but Tx can lock up too waiting for
>    completions.
> 
> 3: Add an option (-m) to only run the tests (or a single test with a
>    later patch) in a single mode: skb, drv, or zc (zero-copy).
> 
> 4-5: Preparatory patches to be able to specify a test to run. Need to
>      define the test names in a single structure and their entry
>      points, so we can use this when wanting to run a specific test.
> 
> 6: Adds a command line option (-l) that lists all the tests.
> 
> 7: Adds a command line option (-t) that runs a specific test instead
>    of the whole test suite. Can be combined with -m to specify a
>    single mode too.
> 
> 8: Use ksft_print_msg() uniformly throughout the tests. It was a mix
>    of printf() and ksft_print_msg() before.
> 
> 9: In some places, we failed the whole test suite instead of a single
>    test in certain circumstances. Fix this so only the test in
>    question is failed and the rest of the test suite continues.
> 
> 10: Display the available command line options with -h
> 
> v3 -> v4:
> * Fixed another spelling error in patch #9 [Maciej]
> * Only allow the actual strings for the -m command [Maciej]
> * Move some code from patch #7 to #3 [Maciej]
> 
> v2 -> v3:
> * Drop the support for environment variables. Probably not useful. [Maciej]
> * Fixed spelling mistake in patch #9 [Maciej]
> * Fail gracefully if unsupported mode is chosen [Maciej]
> * Simplified test run loop [Maciej]
> 
> v1 -> v2:
> 
> * Introduce XSKTEST_MODE env variable to be able to set the mode to
>   use [Przemyslaw]
> * Introduce XSKTEST_ETH env variable to be able to set the ethernet
>   interface to use by introducing a new patch (#11) [Magnus]
> * Fixed spelling error in patch #5 [Przemyslaw, Maciej]
> * Fixed confusing documentation in patch #10  [Przemyslaw]
> * The -l option can now be used without being root [Magnus, Maciej]
> * Fixed documentation error in patch #7 [Maciej]
> * Added error handling to the -t option [Maciej]
> * -h now displayed as an option [Maciej]
> 
> Thanks: Magnus
> 

for the series:
Acked-by: Maciej Fijalkowski <[email-masked]>

> Magnus Karlsson (10):
>   selftests/xsk: print per packet info in verbose mode
>   selftests/xsk: add timeout for Tx thread
>   selftests/xsk: add option to only run tests in a single mode
>   selftests/xsk: move all tests to separate functions
>   selftests/xsk: declare test names in struct
>   selftests/xsk: add option that lists all tests
>   selftests/xsk: add option to run single test
>   selftests/xsk: use ksft_print_msg uniformly
>   selftests/xsk: fail single test instead of all tests
>   selftests/xsk: display command line options with -h
> 
>  tools/testing/selftests/bpf/test_xsk.sh    |  40 +-
>  tools/testing/selftests/bpf/xsk_prereqs.sh |  10 +-
>  tools/testing/selftests/bpf/xskxceiver.c   | 535 ++++++++++++---------
>  tools/testing/selftests/bpf/xskxceiver.h   |  44 +-
>  4 files changed, 368 insertions(+), 261 deletions(-)
> 
> 
> base-commit: 558c50cc3b135e00c9ed15df4c9159e84166f94c
> --
> 2.42.0