Re: [PATCH net] tun/tap & vhost-net: make qdisc backpressure opt-in via IFF_BACKPRESSURE
From: Simon Schippers <hidden>
Date: 2026-07-06 06:50:22
Also in:
linux-doc, lkml
From: Simon Schippers <hidden>
Date: 2026-07-06 06:50:22
Also in:
linux-doc, lkml
On 7/4/26 13:20, Simon Schippers wrote:
@@ -2893,8 +2899,19 @@ static int tun_set_iff(struct net *net, struct file *file, struct ifreq *ifr) /* Make sure persistent devices do not get stuck in * xoff state. */ - if (netif_running(tun->dev)) - netif_tx_wake_all_queues(tun->dev); + if (netif_running(tun->dev)) { + for (int i = 0; i < tun->numqueues; i++) { + struct tun_file *i_tfile; + + i_tfile = rtnl_dereference(tun->tfiles[i]); + spin_lock_bh(&i_tfile->tx_ring.consumer_lock); + spin_lock(&i_tfile->tx_ring.producer_lock); + netif_wake_subqueue(tun->dev, i_tfile->queue_index); + i_tfile->cons_cnt = 0; + spin_unlock(&i_tfile->tx_ring.producer_lock); + spin_unlock_bh(&i_tfile->tx_ring.consumer_lock); + } + }
I think Sashiko [1] is right. I forgot to wake the disabled queues. I will post a v2. [1] Link: https://sashiko.dev/#/patchset/20260704112058.95421-1-simon.schippers%40tu-dortmund.de