Re: [PATCH] net: Ensure tx watchdog failures always print.
From: Ben Greear <hidden>
Date: 2011-06-14 17:25:27
On 06/14/2011 10:14 AM, Eric Dumazet wrote:
Le mardi 14 juin 2011 à 09:50 -0700, greearb@candelatech.com a écrit :quoted
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
Er, right..don't know what I was thinking. Will re-send. Thanks, Ben
quoted
+ } dev->netdev_ops->ndo_tx_timeout(dev); } if (!mod_timer(&dev->watchdog_timer,
-- Ben Greear [off-list ref] Candela Technologies Inc http://www.candelatech.com