Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 14 Jan 2002 13:07:05 -0700 (MST)
From:      "M. Warner Losh" <imp@village.org>
To:        bmilekic@technokratis.com
Cc:        arch@FreeBSD.ORG
Subject:   Re: 64 bit counters again
Message-ID:  <20020114.130705.84407599.imp@village.org>
In-Reply-To: <20020114114911.A24990@technokratis.com>
References:  <20020114105859.A24635@technokratis.com> <3C4305E5.65BB32A6@FreeBSD.org> <20020114114911.A24990@technokratis.com>

next in thread | previous in thread | raw e-mail | index | archive | help
In message: <20020114114911.A24990@technokratis.com>
            Bosko Milekic <bmilekic@technokratis.com> writes:
:   You're going to run into the same problem with a 64-bit counter, as
: Terry pointed out. You're just going to end up moving the time it
: takes from 172 seconds to some other, slightly longer, although equally
: unreasonable, time.

A 64-bit qauntity would take 738734374912 seconds to overflow if the
32-bit one overflowed in 172 seconds.  That strikes me as a reasonable
enough period of time.  If I did the math right, that's on the order
of 23 millinia (23425 years).

: Instead of counting bytes, perhaps you should count
: K or M Bytes. Just take the delta you're about to add to your counter
: and divide it by something reasonable before adding it. If you are
: really bent on getting accurate results, maintain a separate counter
: and sum remainders in it. I'm sure you'll get slightly more accurate
: data while not changing all counters to be 64-bits wide on non-64 bit
: platforms (i.e., you'll keep the added execution time local to that
: specific code you're working on).

That's a whole lot more hair than a 64-bit counter :-).  Maybe you
could do it in k bytes, but the typical packet size is on the order of
1.5k, so you have an error in the neighborhood of 50%.  This would be
0M always.  It seems to be that the atomicacy of the updates for any
accumlated remainder scheme would be the same as for a 64-bit counter,
and a whole lot more hair.

Warner

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-arch" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20020114.130705.84407599.imp>