Re: [PATCH net 2/4] net: ti: icssg-prueth: Report BQL before sending XDP packets
From: Malladi, Meghana
Date: Fri May 02 2025 - 02:19:42 EST
Hi Jakub,
On 5/1/2025 8:23 PM, Jakub Kicinski wrote:
On Mon, 28 Apr 2025 17:34:57 +0530 Meghana Malladi wrote:
When sending out any kind of traffic, it is essential that the driver
keeps reporting BQL of the number of bytes that have been sent so that
BQL can track the amount of data in the queue and prevents it from
overflowing. If BQL is not reported, the driver may continue sending
packets even when the queue is full, leading to packet loss, congestion
and decreased network performance. Currently this is missing in
emac_xmit_xdp_frame() and this patch fixes it.
The ordering of patches in the series is a bit off.
The order should be something like:
net: ti: icssg-prueth: Set XDP feature flags for ndev
net: ti: icssg-prueth: Fix kernel panic during concurrent Tx queue ...
net: ti: icssg-prueth: Fix race condition for traffic from different ...
net: ti: icssg-prueth: Report BQL before sending XDP packets
This patch is not correct without the extra locking in place.
Actually the order of bug fixes which I posted, is the order in which I
fixed the bugs, while running xdp-trafficgen:
1. ndo_xdp_xmit() wasn't getting called because of missing XDP feature
flags check.
2. kernel crash: kernel BUG at lib/dynamic_queue_limits.c:99! and was
fixed by reporting BQL for packet transmission.My bad, I forgot to add
this in the commit message.
3. kernel crash: kernel BUG at lib/genalloc.c:508! due to memory
corruption in DMA descriptors and fixed it with spinlock
4. kernel crash: kernel BUG at lib/dynamic_queue_limits.c:99! due to
race condition in netif_txq and fixed it with __netif_tx_lock()
But yeah I think the order you suggested makes more sense. Let me try
that and post v2.
--
Thanks,
Meghana Malladi