Subject: Re: [PATCH] net: Ensure tx watchdog failures always print.

From: Ben Greear <[email-masked]>
Date: Tue, 14 Jun 2011 10:25:13 -0700

On 06/14/2011 10:14 AM, Eric Dumazet wrote:
> Le mardi 14 juin 2011 à 09:50 -0700, [email-masked] a écrit :
>> From: Ben Greear<[email-masked]>
>>
>> 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<[email-masked]>
>> ---
>> :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

>
>> +				}
>>   				dev->netdev_ops->ndo_tx_timeout(dev);
>>   			}
>>   			if (!mod_timer(&dev->watchdog_timer,
>

-- 
Ben Greear <[email-masked]>
Candela Technologies Inc  http://www.candelatech.com