![]() |
News | Profile | Code | Photography | Looking Glass | Projects | System Statistics | Uncategorized |
Blog |
Although I've seen it before, now it's finally starting to annoy me.
Intel's e1000 Linux driver updates the interface counters every two seconds, making for very choppy real-time graphs of link usage:
I initially found a post about this, including an easy fix, or so I thought. More discussions revealed that under certain circumstances, the supposed fix will cause watchdog timeouts when linked up at half-duplex (which isn't a problem for most of us, but…). Bug ID 1192 at that URL no longer exists. Here's the explanation from Intel:
e100 and e1000 both query h/w for stats on a timer (2 seconds) and cache the results. A call into the driver's get_stats function just returns these cached values. With e100, there is a problem in that issuing the command to dump stats doesn't return right away, so rather than blocking in the driver by waiting for the command to complete, the driver just reads the results of the dump command 2 seconds prior, and then reissues a new dump command. So e100 stats are delayed by ~2 seconds.
3c59x (and others) query the h/w for stats in the driver's get_stats function directly. This gives up-to-date stats. We could do this with e1000, but it'll take a little bit of surgery because there is some other code in the driver that is dependent on stats collected over 2 second period. Nothing that can't be fixed.
Keep in mind that the post is 3 years old. I suppose I can deal with choppy graphs, since blocking in the driver sounds like a bad thing. Oh well.
New comments are currently disabled for this entry.
![]() ![]() ![]() ![]() ![]() |
This HTML for this page was generated in 0.000 seconds. |