[PATCH net 2/4] net: ti: icssg-prueth: Report BQL before sending XDP packets
Malladi, Meghana
m-malladi at ti.com
Thu May 1 23:18:47 PDT 2025
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
More information about the linux-arm-kernel
mailing list