e1000 statistics timer

From: Carsten Otto (c-otto@gmx.de)
Date: Sat Aug 02 2003 - 14:45:03 EST


Hello!
I own two Intel Gigabit cards running with the e1000 driver.
The only problem is the statistics for ifconfig (RX bytes, TX bytes) and
for other programs like gkrellm, bwmon, ... are only updated every _two_
seconds.
This results in a strange display. When the real traffic is at constant
10MB/sec every program displays:
"0 - 20MB/sec - 0 - 20MB/sec - ..."
So, every two seconds the total of the last two seconds. Between that
just nothing.

After a while I got too annoyed and tried to change that.
In e1000_main.c you can find the line (number 1424):

"mod_timer(&adapter->watchdog_timer, jiffies + 2* HZ);"

I don't really understand driver programming, but HZ is 100 and means 1
second.
Changing this line to "... + 1* HZ" resulted in a better behaviour. I
got "a - b - c - d - 0 - e - f - g - h - 0 - ..." where the letters are
quite correct numbers, every fifth value is zero.
The next step was deleting these "jiffies" (what are these?).
Final result:

"mod_timer(&adapter->watchdog_timer, HZ);"

With this line (and the new kernel of course) I get everything what I
need. All programs display the bandwith like they do with my other NICs.

Now my questions:
1) Is my implementation right? It works...
2) Can I change that delay to 1 sec withhout "hurting someone"?
3) What are these jiffies? Mathematically they are about 20 :>
4) There are other timers in the code, that use "jiffies + 2 * HZ" too.
Should they be changed, too?

IMPORTANT:
Please answer to c-otto@gmx.de, because I don't get the whole LKML.

Thanks,
Carsten Otto

PS:
My kernel is 2.4.20 wolk4.2s
CPUs are Durons

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Thu Aug 07 2003 - 22:00:19 EST