Subject: Re: [PATCH bpf-next] selftests: xsk: fix rx_full stats test

From: Maciej Fijalkowski <[email-masked]>
Date: Fri, 21 Jan 2022 17:00:00 +0100

On Fri, Jan 21, 2022 at 01:35:08PM +0100, Magnus Karlsson wrote:
> From: Magnus Karlsson <[email-masked]>
> 
> 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 <[email-masked]>

Fixes xdpxceiver hang on my side.

Tested-by: Maciej Fijalkowski <[email-masked]>
Acked-by: Maciej Fijalkowski <[email-masked]>

> ---
>  tools/testing/selftests/bpf/xdpxceiver.c | 5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)
> 
> diff --git a/tools/testing/selftests/bpf/xdpxceiver.c b/tools/testing/selftests/bpf/xdpxceiver.c
> index 0a5d23da486d..ffa5502ad95e 100644
> --- a/tools/testing/selftests/bpf/xdpxceiver.c
> +++ b/tools/testing/selftests/bpf/xdpxceiver.c
> @@ -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;
> 
> base-commit: 820e6e227c4053b6b631ae65ef1f65d560cb392b
> -- 
> 2.34.1
>