[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <64396b06-5ea7-4da9-b854-b3d42f2b9bde@ti.com>
Date: Fri, 2 May 2025 11:48:47 +0530
From: "Malladi, Meghana" <m-malladi@...com>
To: Jakub Kicinski <kuba@...nel.org>
CC: <dan.carpenter@...aro.org>, <john.fastabend@...il.com>, <hawk@...nel.org>,
<daniel@...earbox.net>, <ast@...nel.org>, <pabeni@...hat.com>,
<edumazet@...gle.com>, <davem@...emloft.net>, <andrew+netdev@...n.ch>,
<bpf@...r.kernel.org>, <linux-kernel@...r.kernel.org>,
<netdev@...r.kernel.org>, <linux-arm-kernel@...ts.infradead.org>,
<srk@...com>, Vignesh Raghavendra <vigneshr@...com>,
Roger Quadros
<rogerq@...nel.org>, <danishanwar@...com>
Subject: Re: [PATCH net 2/4] net: ti: icssg-prueth: Report BQL before sending
XDP packets
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
Powered by blists - more mailing lists