diff options
| author | Breno Leitao <leitao@debian.org> | 2026-08-25 03:50:10 -0700 |
|---|---|---|
| committer | Paolo Abeni <pabeni@redhat.com> | 2026-08-27 10:25:59 +0200 |
| commit | 82aeed2400786bd3f79d88cb8b8f42e6127e5923 (patch) | |
| tree | 8ca58ee50bad7cab85b60b4190ec53b6b726dfed /tools/perf/scripts/python | |
| parent | 991c2be78257cba5bf53cf935fe70f8836964288 (diff) | |
| download | linux-82aeed2400786bd3f79d88cb8b8f42e6127e5923.tar.gz linux-82aeed2400786bd3f79d88cb8b8f42e6127e5923.zip | |
net: fix spurious TX timeout after dev_activate()
While debugging another issue today, I found out that my TX queue is
reported as stopped for 4294907392 ms (49.7 days), on a machine that
had been up for four minutes.
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, which leaves jiffies 59 seconds
short of wrapping.
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: stable@vger.kernel.org
Signed-off-by: Breno Leitao <leitao@debian.org>
Reviewed-by: Nicolai Buchwitz <nb@tipi-net.de>
Reviewed-by: Jason Xing <kerneljasonxing@gmail.com>
Link: https://patch.msgid.link/20260825-trans_start-v2-1-286b4d6d70cb@debian.org
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Diffstat (limited to 'tools/perf/scripts/python')
0 files changed, 0 insertions, 0 deletions
