Message ID | 20220615161041.902916-11-maciej.fijalkowski@intel.com (mailing list archive) |
---|---|
State | Superseded |
Delegated to: | BPF |
Headers | show |
Series | AF_XDP ZC selftests | expand |
On Wed, Jun 15, 2022 at 6:18 PM Maciej Fijalkowski <maciej.fijalkowski@intel.com> wrote: > > Previous change makes xsk->outstanding_tx a dead code, so let's remove > it. > > Acked-by: Magnus Karlsson <magnus.karlsson@intel.com> > Signed-off-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com> > --- > tools/testing/selftests/bpf/xdpxceiver.c | 20 +++----------------- > tools/testing/selftests/bpf/xdpxceiver.h | 1 - > 2 files changed, 3 insertions(+), 18 deletions(-) > > diff --git a/tools/testing/selftests/bpf/xdpxceiver.c b/tools/testing/selftests/bpf/xdpxceiver.c > index 13a3b2ac2399..ade9d87e7a7c 100644 > --- a/tools/testing/selftests/bpf/xdpxceiver.c > +++ b/tools/testing/selftests/bpf/xdpxceiver.c > @@ -815,7 +815,7 @@ static void kick_rx(struct xsk_socket_info *xsk) > exit_with_error(errno); > } > > -static int complete_pkts(struct xsk_socket_info *xsk, int batch_size) > +static void complete_pkts(struct xsk_socket_info *xsk, int batch_size) > { > unsigned int rcvd; > u32 idx; > @@ -824,20 +824,8 @@ static int complete_pkts(struct xsk_socket_info *xsk, int batch_size) > kick_tx(xsk); > > rcvd = xsk_ring_cons__peek(&xsk->umem->cq, batch_size, &idx); > - if (rcvd) { > - if (rcvd > xsk->outstanding_tx) { > - u64 addr = *xsk_ring_cons__comp_addr(&xsk->umem->cq, idx + rcvd - 1); > - > - ksft_print_msg("[%s] Too many packets completed\n", __func__); > - ksft_print_msg("Last completion address: %llx\n", addr); > - return TEST_FAILURE; > - } Actually Maciej, I would like to keep this test. The more sanity checks we can do, the better. The bug that was just fixed in commit a6e944f25cdb ("xsk: Fix generic transmit when completion queue reservation fails") can be caught by this check as the bug introduced more completions than packets received. So please drop this patch for the v4. Thanks: Magnus > - > + if (rcvd) > xsk_ring_cons__release(&xsk->umem->cq, rcvd); > - xsk->outstanding_tx -= rcvd; > - } > - > - return TEST_PASS; > } > > static int receive_pkts(struct ifobject *ifobj, struct pollfd *fds) > @@ -955,9 +943,7 @@ static int __send_pkts(struct ifobject *ifobject, u32 *pkt_nb) > pthread_mutex_unlock(&pacing_mutex); > > xsk_ring_prod__submit(&xsk->tx, i); > - xsk->outstanding_tx += valid_pkts; > - if (complete_pkts(xsk, i)) > - return TEST_FAILURE; > + complete_pkts(xsk, i); > > usleep(10); > return TEST_PASS; > diff --git a/tools/testing/selftests/bpf/xdpxceiver.h b/tools/testing/selftests/bpf/xdpxceiver.h > index f364a92675f8..12b792004163 100644 > --- a/tools/testing/selftests/bpf/xdpxceiver.h > +++ b/tools/testing/selftests/bpf/xdpxceiver.h > @@ -104,7 +104,6 @@ struct xsk_socket_info { > struct xsk_ring_prod tx; > struct xsk_umem_info *umem; > struct xsk_socket *xsk; > - u32 outstanding_tx; > u32 rxqsize; > }; > > -- > 2.27.0 >
diff --git a/tools/testing/selftests/bpf/xdpxceiver.c b/tools/testing/selftests/bpf/xdpxceiver.c index 13a3b2ac2399..ade9d87e7a7c 100644 --- a/tools/testing/selftests/bpf/xdpxceiver.c +++ b/tools/testing/selftests/bpf/xdpxceiver.c @@ -815,7 +815,7 @@ static void kick_rx(struct xsk_socket_info *xsk) exit_with_error(errno); } -static int complete_pkts(struct xsk_socket_info *xsk, int batch_size) +static void complete_pkts(struct xsk_socket_info *xsk, int batch_size) { unsigned int rcvd; u32 idx; @@ -824,20 +824,8 @@ static int complete_pkts(struct xsk_socket_info *xsk, int batch_size) kick_tx(xsk); rcvd = xsk_ring_cons__peek(&xsk->umem->cq, batch_size, &idx); - if (rcvd) { - if (rcvd > xsk->outstanding_tx) { - u64 addr = *xsk_ring_cons__comp_addr(&xsk->umem->cq, idx + rcvd - 1); - - ksft_print_msg("[%s] Too many packets completed\n", __func__); - ksft_print_msg("Last completion address: %llx\n", addr); - return TEST_FAILURE; - } - + if (rcvd) xsk_ring_cons__release(&xsk->umem->cq, rcvd); - xsk->outstanding_tx -= rcvd; - } - - return TEST_PASS; } static int receive_pkts(struct ifobject *ifobj, struct pollfd *fds) @@ -955,9 +943,7 @@ static int __send_pkts(struct ifobject *ifobject, u32 *pkt_nb) pthread_mutex_unlock(&pacing_mutex); xsk_ring_prod__submit(&xsk->tx, i); - xsk->outstanding_tx += valid_pkts; - if (complete_pkts(xsk, i)) - return TEST_FAILURE; + complete_pkts(xsk, i); usleep(10); return TEST_PASS; diff --git a/tools/testing/selftests/bpf/xdpxceiver.h b/tools/testing/selftests/bpf/xdpxceiver.h index f364a92675f8..12b792004163 100644 --- a/tools/testing/selftests/bpf/xdpxceiver.h +++ b/tools/testing/selftests/bpf/xdpxceiver.h @@ -104,7 +104,6 @@ struct xsk_socket_info { struct xsk_ring_prod tx; struct xsk_umem_info *umem; struct xsk_socket *xsk; - u32 outstanding_tx; u32 rxqsize; };