Skip to contentSkip to conversation

e1000 statistics timer

DISCUSSION Carsten Otto 3 participants 3 messages Aug 2, 2003

lore
Share & tools
lore
#0 lore raw

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 [email protected], because I don't get the whole LKML.

Thanks,
Carsten Otto

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

#1 lore raw
Quoted 3 lines · Carsten Otto

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

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

After HZ jiffies have passed you're adding a timer to trigger in the past.

Quoted 2 lines

Now my questions:
1) Is my implementation right? It works...

That is often the case with lots of software, it may be wrong but by $DEITY's gracious hand, still 'works'

Quoted 1 line

2) Can I change that delay to 1 sec withhout "hurting someone"?

Dunno, try jiffies + HZ, they're just statistics

Quoted 1 line

3) What are these jiffies? Mathematically they are about 20 :>

jiffies is the global variable which stores how many timer ticks have occured since system startup.

Quoted 2 lines

4) There are other timers in the code, that use "jiffies + 2 * HZ" too. Should they be changed, too?

Nooo!! =)

Quoted 2 lines

IMPORTANT:
Please answer to [email protected], because I don't get the whole LKML.

Have fun,
Zwane

Signature · 1 line
function.linuxpower.ca
#2 lore raw
In reply to Carsten Otto

On Saturday 02 August 2003 21:45, Carsten Otto wrote:

Hi Carsten,

well, Zwane already said all needed things, so ... :)

Quoted 1 line

My kernel is 2.4.20 wolk4.2s

cool! BTW: 4.4s is actual ;) ... 4.4 has updated e1000 driver though it won't fix your "problem".

ciao, Marc