[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <Z-sRF0G43HpGiGwH@mini-arch>
Date: Mon, 31 Mar 2025 15:03:03 -0700
From: Stanislav Fomichev <stfomichev@...il.com>
To: Wang Liang <wangliang74@...wei.com>
Cc: bjorn@...nel.org, magnus.karlsson@...el.com,
maciej.fijalkowski@...el.com, jonathan.lemon@...il.com,
davem@...emloft.net, edumazet@...gle.com, kuba@...nel.org,
pabeni@...hat.com, horms@...nel.org, ast@...nel.org,
daniel@...earbox.net, hawk@...nel.org, john.fastabend@...il.com,
yuehaibing@...wei.com, zhangchangzhong@...wei.com,
netdev@...r.kernel.org, bpf@...r.kernel.org,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH net] xsk: correct tx_ring_empty_descs count statistics
On 03/31, Stanislav Fomichev wrote:
> On 03/29, Wang Liang wrote:
> > The tx_ring_empty_descs count may be incorrect, when set the XDP_TX_RING
> > option but do not reserve tx ring. Because xsk_poll() try to wakeup the
> > driver by calling xsk_generic_xmit() for non-zero-copy mode. So the
> > tx_ring_empty_descs count increases once the xsk_poll()is called:
> >
> > xsk_poll
> > xsk_generic_xmit
> > __xsk_generic_xmit
> > xskq_cons_peek_desc
> > xskq_cons_read_desc
> > q->queue_empty_descs++;
> >
> > To avoid this count error, add check for tx descs before send msg in poll.
> >
> > Fixes: df551058f7a3 ("xsk: Fix crash in poll when device does not support ndo_xsk_wakeup")
> > Signed-off-by: Wang Liang <wangliang74@...wei.com>
>
> Acked-by: Stanislav Fomichev <sdf@...ichev.me>
Hmm, wait, I stumbled upon xskq_has_descs again and it looks only at
cached prod/cons. How is it supposed to work when the actual tx
descriptor is posted? Is there anything besides xskq_cons_peek_desc from
__xsk_generic_xmit that refreshes cached_prod?
Powered by blists - more mailing lists