[lkml]   [2003]   [Jul]   [25]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: Net device byte statistics
Jeff Sipek wrote:
> Hash: SHA1
> On Friday 25 July 2003 17:55, jw schultz wrote:

>>My thought would be to use 96bits for each counter. In-kernel
>>code would run periodically doing something like this:
>> curval = counter.in_kernel;
>> /* get it in a register for atomicity */
>> if (counter.user_low < curval)
>> ++counter.user_high;
>> counter.user_low = curval;

What about every 30 seconds or so, detect wraps, and bump the 'high' counter
if it wraps. (Check more often if you can wrap more than once in 30 secs).

Then, upon read by user-space (or whatever needs 64-bit counters):

1) check wrap
2) grab low bits and OR them with the high bits.
3) check wrap again. If wrap happened, try again. Assumption is it could never wrap
more than once during the time you are checking.

I think this could give us very low overhead, and extremely precise 64-bit
reads. And, I think it would not need locks in the fast path..but I could
also be missing something :)

Ben Greear <>
Candela Technologies Inc

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
More majordomo info at
Please read the FAQ at

 \ /
  Last update: 2005-03-22 13:47    [from the cache]
©2003-2014 Jasper Spaans. hosted at Digital Ocean