Re: [PATCH 3/4] Make net watchdog timers 1 sec jiffy aligned
From: Patrick McHardy <hidden>
Date: 2007-05-30 18:43:30
Also in:
lkml
Stephen Hemminger wrote:
quoted
quoted
Index: linux-2.6.22-rc-mm/net/sched/sch_generic.c ===================================================================--- linux-2.6.22-rc-mm.orig/net/sched/sch_generic.c 2007-05-24 11:16:03.000000000 -0700 +++ linux-2.6.22-rc-mm/net/sched/sch_generic.c 2007-05-25 15:10:02.000000000 -0700@@ -224,7 +224,8 @@if (dev->tx_timeout) { if (dev->watchdog_timeo <= 0) dev->watchdog_timeo = 5*HZ; - if (!mod_timer(&dev->watchdog_timer, jiffies + dev->watchdog_timeo)) + if (!mod_timer(&dev->watchdog_timer, + round_jiffies(jiffies + dev->watchdog_timeo))) dev_hold(dev); } }Please cc netdev on net patches. Again, I worry that if people set the watchdog timeout to, say, 0.1 seconds then they will get one second, which is grossly different. And if they were to set it to 1.5 seconds, they'd get 2.0 which is pretty significant, too.Alternatively, we could change to a timer that is pushed forward after each TX, maybe using hrtimer and hrtimer_forward(). That way the timer would never run in normal case.
It seems wasteful to add per-packet overhead for tx timeouts, which should be an exception. Do drivers really care about the exact timeout value? Compared to a packet transmission time its incredibly long anyways ..