]> git.baikalelectronics.ru Git - kernel.git/commitdiff
selftests, xsk: Fix rx_full stats test
authorMagnus Karlsson <magnus.karlsson@intel.com>
Fri, 21 Jan 2022 12:35:08 +0000 (13:35 +0100)
committerDaniel Borkmann <daniel@iogearbox.net>
Mon, 24 Jan 2022 16:29:22 +0000 (17:29 +0100)
Fix the rx_full stats test so that it correctly reports pass even when
the fill ring is not full of buffers.

Fixes: 872a1184dbf2 ("selftests: xsk: Put the same buffer only once in the fill ring")
Signed-off-by: Magnus Karlsson <magnus.karlsson@intel.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Tested-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
Acked-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
Link: https://lore.kernel.org/bpf/20220121123508.12759-1-magnus.karlsson@gmail.com
tools/testing/selftests/bpf/xdpxceiver.c

index 0a5d23da486df50dc743c749fcf91711f0d9e8f9..ffa5502ad95ed3fb7712ed5655bb3242c191c83b 100644 (file)
@@ -906,7 +906,10 @@ static bool rx_stats_are_valid(struct ifobject *ifobject)
                        return true;
                case STAT_TEST_RX_FULL:
                        xsk_stat = stats.rx_ring_full;
-                       expected_stat -= RX_FULL_RXQSIZE;
+                       if (ifobject->umem->num_frames < XSK_RING_PROD__DEFAULT_NUM_DESCS)
+                               expected_stat = ifobject->umem->num_frames - RX_FULL_RXQSIZE;
+                       else
+                               expected_stat = XSK_RING_PROD__DEFAULT_NUM_DESCS - RX_FULL_RXQSIZE;
                        break;
                case STAT_TEST_RX_FILL_EMPTY:
                        xsk_stat = stats.rx_fill_ring_empty_descs;