netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [net-next] net:  Provide details on watchdog timeout.
@ 2010-08-09 19:16 Ben Greear
  2010-08-09 19:28 ` Stephen Hemminger
  0 siblings, 1 reply; 7+ messages in thread
From: Ben Greear @ 2010-08-09 19:16 UTC (permalink / raw)
  To: netdev; +Cc: Ben Greear

This also makes it printed under net_ratelimit instead
of WARN_ON_ONCE.  The backtrace never helped me much.

Signed-off-by: Ben Greear <greearb@candelatech.com>
---
:100644 100644 2aeb3a4... b52c450... M	net/sched/sch_generic.c
 net/sched/sch_generic.c |   12 +++++++++---
 1 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/net/sched/sch_generic.c b/net/sched/sch_generic.c
index 2aeb3a4..b52c450 100644
--- a/net/sched/sch_generic.c
+++ b/net/sched/sch_generic.c
@@ -253,9 +253,15 @@ 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);
+				if (net_ratelimit()) {
+					char drivername[64];
+					printk(KERN_INFO "NETDEV WATCHDOG: %s (%s): "
+					       "transmit queue %u timed out"
+					       " trans-start: %lu  jiffies: %lu\n",
+					       dev->name,
+					       netdev_drivername(dev, drivername, 64),
+					       i, trans_start, jiffies);
+				}
 				dev->netdev_ops->ndo_tx_timeout(dev);
 			}
 			if (!mod_timer(&dev->watchdog_timer,
-- 
1.6.2.5


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [net-next] net:  Provide details on watchdog timeout.
  2010-08-09 19:16 [net-next] net: Provide details on watchdog timeout Ben Greear
@ 2010-08-09 19:28 ` Stephen Hemminger
  2010-08-09 20:08   ` David Miller
  0 siblings, 1 reply; 7+ messages in thread
From: Stephen Hemminger @ 2010-08-09 19:28 UTC (permalink / raw)
  To: Ben Greear; +Cc: netdev

On Mon,  9 Aug 2010 12:16:41 -0700
Ben Greear <greearb@candelatech.com> wrote:

> This also makes it printed under net_ratelimit instead
> of WARN_ON_ONCE.  The backtrace never helped me much.
> 
> Signed-off-by: Ben Greear <greearb@candelatech.com>
>

Please don't remove the WARN_ because it is used by oops.kernel.org
automated tracking.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [net-next] net:  Provide details on watchdog timeout.
@ 2010-08-09 19:59 Ben Greear
  2010-08-09 19:59 ` Ben Greear
  2010-08-09 20:10 ` David Miller
  0 siblings, 2 replies; 7+ messages in thread
From: Ben Greear @ 2010-08-09 19:59 UTC (permalink / raw)
  To: netdev; +Cc: Ben Greear

This keeps the WARN_ON but will also log normal kernel messages
after the WARN_ON logic has happened once.

Signed-off-by: Ben Greear <greearb@candelatech.com>
---
:100644 100644 2aeb3a4... 66e6154... M	net/sched/sch_generic.c
 net/sched/sch_generic.c |   23 ++++++++++++++++++++---
 1 files changed, 20 insertions(+), 3 deletions(-)

diff --git a/net/sched/sch_generic.c b/net/sched/sch_generic.c
index 2aeb3a4..66e6154 100644
--- a/net/sched/sch_generic.c
+++ b/net/sched/sch_generic.c
@@ -253,9 +253,26 @@ 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;
+				if (do_once || net_ratelimit()) {
+					char drivername[64];
+					if (unlikely(do_once)) {
+						WARN(1, KERN_INFO "NETDEV WATCHDOG: %s (%s): "
+						     "transmit queue %u timed out"
+						     " trans-start: %lu  jiffies: %lu\n",
+						     dev->name,
+						     netdev_drivername(dev, drivername, 64),
+						     i, trans_start, jiffies);
+						do_once = false;
+					}
+					else
+						printk(KERN_INFO "NETDEV WATCHDOG: %s (%s): "
+						       "transmit queue %u timed out"
+						       " trans-start: %lu  jiffies: %lu\n",
+						       dev->name,
+						       netdev_drivername(dev, drivername, 64),
+						       i, trans_start, jiffies);
+				}
 				dev->netdev_ops->ndo_tx_timeout(dev);
 			}
 			if (!mod_timer(&dev->watchdog_timer,
-- 
1.6.2.5


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [net-next] net:  Provide details on watchdog timeout.
  2010-08-09 19:59 Ben Greear
@ 2010-08-09 19:59 ` Ben Greear
  2010-08-09 20:10 ` David Miller
  1 sibling, 0 replies; 7+ messages in thread
From: Ben Greear @ 2010-08-09 19:59 UTC (permalink / raw)
  To: Ben Greear; +Cc: netdev

On 08/09/2010 12:59 PM, Ben Greear wrote:
> This keeps the WARN_ON but will also log normal kernel messages
> after the WARN_ON logic has happened once.

This is compile-tested only, by the way.

Thanks,
Ben

>
> Signed-off-by: Ben Greear<greearb@candelatech.com>
> ---
> :100644 100644 2aeb3a4... 66e6154... M	net/sched/sch_generic.c
>   net/sched/sch_generic.c |   23 ++++++++++++++++++++---
>   1 files changed, 20 insertions(+), 3 deletions(-)
>
> diff --git a/net/sched/sch_generic.c b/net/sched/sch_generic.c
> index 2aeb3a4..66e6154 100644
> --- a/net/sched/sch_generic.c
> +++ b/net/sched/sch_generic.c
> @@ -253,9 +253,26 @@ 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;
> +				if (do_once || net_ratelimit()) {
> +					char drivername[64];
> +					if (unlikely(do_once)) {
> +						WARN(1, KERN_INFO "NETDEV WATCHDOG: %s (%s): "
> +						     "transmit queue %u timed out"
> +						     " trans-start: %lu  jiffies: %lu\n",
> +						     dev->name,
> +						     netdev_drivername(dev, drivername, 64),
> +						     i, trans_start, jiffies);
> +						do_once = false;
> +					}
> +					else
> +						printk(KERN_INFO "NETDEV WATCHDOG: %s (%s): "
> +						       "transmit queue %u timed out"
> +						       " trans-start: %lu  jiffies: %lu\n",
> +						       dev->name,
> +						       netdev_drivername(dev, drivername, 64),
> +						       i, trans_start, jiffies);
> +				}
>   				dev->netdev_ops->ndo_tx_timeout(dev);
>   			}
>   			if (!mod_timer(&dev->watchdog_timer,


-- 
Ben Greear <greearb@candelatech.com>
Candela Technologies Inc  http://www.candelatech.com


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [net-next] net: Provide details on watchdog timeout.
  2010-08-09 19:28 ` Stephen Hemminger
@ 2010-08-09 20:08   ` David Miller
  0 siblings, 0 replies; 7+ messages in thread
From: David Miller @ 2010-08-09 20:08 UTC (permalink / raw)
  To: shemminger; +Cc: greearb, netdev

From: Stephen Hemminger <shemminger@vyatta.com>
Date: Mon, 9 Aug 2010 15:28:20 -0400

> On Mon,  9 Aug 2010 12:16:41 -0700
> Ben Greear <greearb@candelatech.com> wrote:
> 
>> This also makes it printed under net_ratelimit instead
>> of WARN_ON_ONCE.  The backtrace never helped me much.
>> 
>> Signed-off-by: Ben Greear <greearb@candelatech.com>
>>
> 
> Please don't remove the WARN_ because it is used by oops.kernel.org
> automated tracking.

Yes, please don't change this, there are automated tools that
know about what this thing spits out and yes the backtrace
needs to be there.


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [net-next] net: Provide details on watchdog timeout.
  2010-08-09 19:59 Ben Greear
  2010-08-09 19:59 ` Ben Greear
@ 2010-08-09 20:10 ` David Miller
  2010-08-09 20:12   ` Ben Greear
  1 sibling, 1 reply; 7+ messages in thread
From: David Miller @ 2010-08-09 20:10 UTC (permalink / raw)
  To: greearb; +Cc: netdev

From: Ben Greear <greearb@candelatech.com>
Date: Mon,  9 Aug 2010 12:59:14 -0700

> This keeps the WARN_ON but will also log normal kernel messages
> after the WARN_ON logic has happened once.
> 
> Signed-off-by: Ben Greear <greearb@candelatech.com>

I think this warning is fine as-is.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [net-next] net: Provide details on watchdog timeout.
  2010-08-09 20:10 ` David Miller
@ 2010-08-09 20:12   ` Ben Greear
  0 siblings, 0 replies; 7+ messages in thread
From: Ben Greear @ 2010-08-09 20:12 UTC (permalink / raw)
  To: David Miller; +Cc: netdev

On 08/09/2010 01:10 PM, David Miller wrote:
> From: Ben Greear<greearb@candelatech.com>
> Date: Mon,  9 Aug 2010 12:59:14 -0700
>
>> This keeps the WARN_ON but will also log normal kernel messages
>> after the WARN_ON logic has happened once.
>>
>> Signed-off-by: Ben Greear<greearb@candelatech.com>
>
> I think this warning is fine as-is.

Ok, thanks for looking.

Ben

-- 
Ben Greear <greearb@candelatech.com>
Candela Technologies Inc  http://www.candelatech.com


^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2010-08-09 20:12 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-08-09 19:16 [net-next] net: Provide details on watchdog timeout Ben Greear
2010-08-09 19:28 ` Stephen Hemminger
2010-08-09 20:08   ` David Miller
  -- strict thread matches above, loose matches on Subject: below --
2010-08-09 19:59 Ben Greear
2010-08-09 19:59 ` Ben Greear
2010-08-09 20:10 ` David Miller
2010-08-09 20:12   ` Ben Greear

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).