Thread (14 messages) 14 messages, 5 authors, 2025-07-26

Re: [PATCH] net: Revert tx queue length on partial failure in dev_qdisc_change_tx_queue_len()

From: Eric Dumazet <edumazet@google.com>
Date: 2025-07-22 16:28:27
Also in: linux-kernel-mentees, lkml

On Tue, Jul 22, 2025 at 9:22 AM Suchit K [off-list ref] wrote:
quoted
WRITE_ONCE() is missing.
Oops, I'm sorry about that.
quoted
quoted
+               while (i >= 0) {
+                       qdisc_change_tx_queue_len(dev, &dev->_tx[i]);
What happens if one of these calls fails ?

I think a fix will be more complicated...
I did consider that, but since I didn’t have a solution, I assumed it
wouldn’t fail.
But this definitely could fail. Exactly the same way than the first time.

I also have a question. In the Qdisc_ops structure,
there’s a function pointer for change_tx_queue_len, but I was only
able to find a single implementation which is
pfifo_fast_change_tx_queue_len. Is that the only one? Apologies if
this isn’t the right place to ask such questions. I’d really
appreciate any feedback. Thank you!
I think only pfifo_fast has to re-allocate its data structures.

Other qdiscs eventually dynamically read dev->tx_queue_len (thus the
WRITE_ONCE() I mentioned to you)
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help