Re: [PATCH net] net: fix spurious TX timeout after dev_activate()

Nicolai Buchwitz <[email protected]>
Newsgroups org.kernel.vger.stable,org.kernel.vger.linux-kernel,org.kernel.vger.netdev
Message-ID <[email protected]>
Hi Breno

On 24.8.2026 13:45, Breno Leitao wrote:
> While debugging another issue today, I found out that my TX queue is
> stopped for 136.07 years (4294907392 ms).

nit: 4294907392 ms is ~49.7 days

> 
>     bnxt_en 0002:01:00.0 eth0: NETDEV WATCHDOG: CPU: 28: transmit queue 
> 23 timed out 4294907392 ms
> 
> 4294907392 is not an elapsed time. It is the value of jiffies at that
> moment: INITIAL_JIFFIES is 4294667296.
> 
> dev_activate() runs transition_one_qdisc() over every TX queue, which
> resets trans_start to 0, and then stamps only queue 0 through
> netif_trans_update().
> 
> Stamp jiffies instead. A queue stopped across dev_activate() now gets a
> full watchdog_timeo of grace, and is still reported if it is stopped
> that long.
> 
> Fixes: 9b36627acecd ("net: remove dev->trans_start")
> Cc: [email protected]
> Signed-off-by: Breno Leitao <[email protected]>
> ---
>  net/sched/sch_generic.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/net/sched/sch_generic.c b/net/sched/sch_generic.c
> index ef2b4bf515641..4539dc2c6d380 100644
> --- a/net/sched/sch_generic.c
> +++ b/net/sched/sch_generic.c
> @@ -1278,7 +1278,7 @@ static void transition_one_qdisc(struct 
> net_device *dev,
> 
>  	rcu_assign_pointer(dev_queue->qdisc, new_qdisc);
>  	if (need_watchdog_p) {
> -		WRITE_ONCE(dev_queue->trans_start, 0);
> +		WRITE_ONCE(dev_queue->trans_start, jiffies);
>  		*need_watchdog_p = 1;
>  	}
>  }

Follow up or v2: netif_trans_update() in dev_activate() now seems 
redundant?

> 
> ---
> base-commit: 0a0d1d55dad570724bf8c7ea83409639cfb4be9b
> change-id: 20260824-trans_start-557ecd4c8866
> 
> Best regards,
> --
> Breno Leitao <[email protected]>

Reviewed-by: Nicolai Buchwitz <[email protected]>

Thanks,
Nicolai
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.