[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1616453705.30524.1752671471644.JavaMail.zimbra@couthit.local>
Date: Wed, 16 Jul 2025 18:41:11 +0530 (IST)
From: Parvathi Pudi <parvathi@...thit.com>
To: parvathi <parvathi@...thit.com>, kuba <kuba@...nel.org>
Cc: danishanwar <danishanwar@...com>, rogerq <rogerq@...nel.org>,
andrew+netdev <andrew+netdev@...n.ch>, davem <davem@...emloft.net>,
edumazet <edumazet@...gle.com>, pabeni <pabeni@...hat.com>,
robh <robh@...nel.org>, krzk+dt <krzk+dt@...nel.org>,
conor+dt <conor+dt@...nel.org>, ssantosh <ssantosh@...nel.org>,
richardcochran <richardcochran@...il.com>,
s hauer <s.hauer@...gutronix.de>, m-karicheri2 <m-karicheri2@...com>,
glaroque <glaroque@...libre.com>, afd <afd@...com>,
saikrishnag <saikrishnag@...vell.com>, m-malladi <m-malladi@...com>,
jacob e keller <jacob.e.keller@...el.com>,
diogo ivo <diogo.ivo@...mens.com>,
javier carrasco cruz <javier.carrasco.cruz@...il.com>,
horms <horms@...nel.org>, s-anna <s-anna@...com>,
basharath <basharath@...thit.com>,
linux-arm-kernel <linux-arm-kernel@...ts.infradead.org>,
netdev <netdev@...r.kernel.org>,
devicetree <devicetree@...r.kernel.org>,
linux-kernel <linux-kernel@...r.kernel.org>,
Vadim Fedorenko <vadim.fedorenko@...ux.dev>,
pratheesh <pratheesh@...com>, Prajith Jayarajan <prajith@...com>,
Vignesh Raghavendra <vigneshr@...com>, praneeth <praneeth@...com>,
srk <srk@...com>, rogerq <rogerq@...com>,
krishna <krishna@...thit.com>, pmohan <pmohan@...thit.com>,
mohan <mohan@...thit.com>
Subject: Re: [PATCH net-next v10 04/11] net: ti: prueth: Adds link
detection, RX and TX support.
Hi,
>>> + qid = icssm_prueth_get_tx_queue_id(emac->prueth, skb);
>>> + ret = icssm_prueth_tx_enqueue(emac, skb, qid);
>>> + if (ret) {
>>> + if (ret != -ENOBUFS && netif_msg_tx_err(emac) &&
>>> + net_ratelimit())
>>> + netdev_err(ndev, "packet queue failed: %d\n", ret);
>>> + goto fail_tx;
>>> + }
>>
>>> + if (ret == -ENOBUFS) {
>>> + ret = NETDEV_TX_BUSY;
>>
>>
>> Something needs to stop the queue, right? Otherwise the stack will
>> send the frame right back to the driver.
>>
>
> Yes, we will notify upper layer with “netif_tx_stop_queue()” when returning
> “NETDEV_TX_BUSY” to not push again immediately.
>
We reviewed the flow and found that the reason for NETDEV_TX_BUSY being
notified to the upper layers is due lack of support for reliably detecting
the TX completion event.
In case of ICSSM PRU Ethernet, we do not have support for TX complete
notification back to the driver from firmware and its like store and
forget approach. So it will be tricky to enable back/resume the queue
if we stop it when we see busy status.
Returning NETDEV_TX_BUSY seems to be the best option so that the stack can
retry as soon as possible.
Thanks and Regards,
Parvathi.
Powered by blists - more mailing lists