mbox series

[bpf-next,v3,00/16] selftests: xsk: various simplifications

Message ID 20210825093722.10219-1-magnus.karlsson@gmail.com
Headers show
Series selftests: xsk: various simplifications | expand

Message

Magnus Karlsson Aug. 25, 2021, 9:37 a.m. UTC
This patch set mainly contains various simplifications to the xsk
selftests. The only exception is the introduction of packet streams
that describes what the Tx process should send and what the Rx process
should receive. If it receives anything else, the test fails. This
mechanism can be used to produce tests were all packets are not
received by the Rx thread or modified in some way. An example of this
is if an XDP program does XDP_PASS on some of the packets.

This patch set will be followed by another patch set that implements a
new structure that will facilitate adding new tests. A couple of new
tests will also be included in that patch set.

v2 -> v3:

* Reworked patch 12 so that it now has functions for creating and
  destroying ifobjects. Simplifies the code. [Maciej]
* The packet stream now allocates the supplied buffer array length,
  instead of the default one. [Maciej]
* pkt_stream_get_pkt() now returns NULL when indexing a non-existing
  packet. [Maciej]
* pkt_validate() is now is_pkt_valid(). [Maciej]
* Slowed down packet sending speed even more in patch 11 so that slow
  systems do not silenty drop packets in skb mode.

v1 -> v2:

* Dropped the patch with per process limit changes as it is not needed
  [Yonghong]
* Improved the commit message of patch 1 [Yonghong]
* Fixed a spelling error in patch 9

Thanks: Magnus

Magnus Karlsson (16):
  selftests: xsk: remove color mode
  selftests: xsk: remove the num_tx_packets option
  selftests: xsk: remove unused variables
  selftests: xsk: return correct error codes
  selftests: xsk: simplify the retry code
  selftests: xsk: remove end-of-test packet
  selftests: xsk: disassociate umem size with packets sent
  selftests: xsk: rename worker_* functions that are not thread entry
    points
  selftests: xsk: simplify packet validation in xsk tests
  selftests: xsk: validate tx stats on tx thread
  selftests: xsk: decrease sending speed
  selftests: xsk: simplify cleanup of ifobjects
  selftests: xsk: generate packet directly in umem
  selftests: xsk: generate packets from specification
  selftests: xsk: make enums lower case
  selftests: xsk: preface options with opt

 tools/testing/selftests/bpf/test_xsk.sh    |  10 +-
 tools/testing/selftests/bpf/xdpxceiver.c   | 681 ++++++++++-----------
 tools/testing/selftests/bpf/xdpxceiver.h   |  63 +-
 tools/testing/selftests/bpf/xsk_prereqs.sh |  30 +-
 4 files changed, 356 insertions(+), 428 deletions(-)


base-commit: 3bbc8ee7c363a83aa192d796ad37b6bf462a2947
--
2.29.0

Comments

Maciej Fijalkowski Aug. 25, 2021, 6:26 p.m. UTC | #1
On Wed, Aug 25, 2021 at 11:37:06AM +0200, Magnus Karlsson wrote:
> This patch set mainly contains various simplifications to the xsk
> selftests. The only exception is the introduction of packet streams
> that describes what the Tx process should send and what the Rx process
> should receive. If it receives anything else, the test fails. This
> mechanism can be used to produce tests were all packets are not
> received by the Rx thread or modified in some way. An example of this
> is if an XDP program does XDP_PASS on some of the packets.
> 
> This patch set will be followed by another patch set that implements a
> new structure that will facilitate adding new tests. A couple of new
> tests will also be included in that patch set.

I went through the series and besides the typo found by Alexei I have no
objections.

Acked-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>

Looking forward to next set that you mention above :)

> 
> v2 -> v3:
> 
> * Reworked patch 12 so that it now has functions for creating and
>   destroying ifobjects. Simplifies the code. [Maciej]
> * The packet stream now allocates the supplied buffer array length,
>   instead of the default one. [Maciej]
> * pkt_stream_get_pkt() now returns NULL when indexing a non-existing
>   packet. [Maciej]
> * pkt_validate() is now is_pkt_valid(). [Maciej]
> * Slowed down packet sending speed even more in patch 11 so that slow
>   systems do not silenty drop packets in skb mode.
> 
> v1 -> v2:
> 
> * Dropped the patch with per process limit changes as it is not needed
>   [Yonghong]
> * Improved the commit message of patch 1 [Yonghong]
> * Fixed a spelling error in patch 9
> 
> Thanks: Magnus
> 
> Magnus Karlsson (16):
>   selftests: xsk: remove color mode
>   selftests: xsk: remove the num_tx_packets option
>   selftests: xsk: remove unused variables
>   selftests: xsk: return correct error codes
>   selftests: xsk: simplify the retry code
>   selftests: xsk: remove end-of-test packet
>   selftests: xsk: disassociate umem size with packets sent
>   selftests: xsk: rename worker_* functions that are not thread entry
>     points
>   selftests: xsk: simplify packet validation in xsk tests
>   selftests: xsk: validate tx stats on tx thread
>   selftests: xsk: decrease sending speed
>   selftests: xsk: simplify cleanup of ifobjects
>   selftests: xsk: generate packet directly in umem
>   selftests: xsk: generate packets from specification
>   selftests: xsk: make enums lower case
>   selftests: xsk: preface options with opt
> 
>  tools/testing/selftests/bpf/test_xsk.sh    |  10 +-
>  tools/testing/selftests/bpf/xdpxceiver.c   | 681 ++++++++++-----------
>  tools/testing/selftests/bpf/xdpxceiver.h   |  63 +-
>  tools/testing/selftests/bpf/xsk_prereqs.sh |  30 +-
>  4 files changed, 356 insertions(+), 428 deletions(-)
> 
> 
> base-commit: 3bbc8ee7c363a83aa192d796ad37b6bf462a2947
> --
> 2.29.0
Alexei Starovoitov Aug. 25, 2021, 7:32 p.m. UTC | #2
On Wed, Aug 25, 2021 at 11:42 AM Maciej Fijalkowski
<maciej.fijalkowski@intel.com> wrote:
>
> On Wed, Aug 25, 2021 at 11:37:06AM +0200, Magnus Karlsson wrote:
> > This patch set mainly contains various simplifications to the xsk
> > selftests. The only exception is the introduction of packet streams
> > that describes what the Tx process should send and what the Rx process
> > should receive. If it receives anything else, the test fails. This
> > mechanism can be used to produce tests were all packets are not
> > received by the Rx thread or modified in some way. An example of this
> > is if an XDP program does XDP_PASS on some of the packets.
> >
> > This patch set will be followed by another patch set that implements a
> > new structure that will facilitate adding new tests. A couple of new
> > tests will also be included in that patch set.
>
> I went through the series and besides the typo found by Alexei I have no
> objections.
>
> Acked-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>

Great. Applied. Thanks everyone.