Re: [PATCH] net: Ensure tx watchdog failures always print.
From: Eric Dumazet <hidden>
Date: 2011-06-14 17:14:37
Le mardi 14 juin 2011 à 09:50 -0700, greearb@candelatech.com a écrit :
quoted hunk ↗ jump to hunk
From: Ben Greear <redacted> These are too important to not have some log message generated. But, keep the logic that only prints a single stack dump. Signed-off-by: Ben Greear <redacted> --- :100644 100644 90939ba... fce5558... M net/sched/sch_generic.c net/sched/sch_generic.c | 16 ++++++++++++++-- 1 files changed, 14 insertions(+), 2 deletions(-)diff --git a/net/sched/sch_generic.c b/net/sched/sch_generic.c index 90939ba..fce5558 100644 --- a/net/sched/sch_generic.c +++ b/net/sched/sch_generic.c@@ -252,8 +252,20 @@ static void dev_watchdog(unsigned long arg) if (some_queue_timedout) { char drivername[64]; - WARN_ONCE(1, KERN_INFO "NETDEV WATCHDOG: %s (%s): transmit queue %u timed out\n", - dev->name, netdev_drivername(dev, drivername, 64), i); + static bool do_once = true; + printk(KERN_INFO "NETDEV WATCHDOG: %s (%s):" + " transmit queue %u timed out," + " trans_start: %lu, wd-timeout: %i" + " jiffies: %lu tx-queues: %i\n", + dev->name, + netdev_drivername(dev, drivername, 64), + i, + trans_start, dev->watchdog_timeo, + jiffies, dev->num_tx_queues); + if (do_once) { + do_once = false; + WARN_ON(1);
You could use WARN_ON_ONCE(1) here
+ } dev->netdev_ops->ndo_tx_timeout(dev); } if (!mod_timer(&dev->watchdog_timer,