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
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)