vmstat's entries type
M. Warner Losh
imp at bsdimp.com
Thu Jul 20 15:35:36 UTC 2006
In message: <200607191315.k6JDFpvM048354 at lurza.secnetix.de>
Oliver Fromme <olli at lurza.secnetix.de> writes:
: Michal Mertl <mime at traveller.cz> wrote:
: > We had discussions about 64 bit counters several times during the years
: > (I made a huge patch which turned every network related counter 64bit
: > and all accesses were made with a macro) and the conclusion was that it
: > isn't worth it.
: >
: > 64bit numbers are too expensive to do correctly on 32bit machines. When
: > done incorrectly they can easily get incorrect and that is probably
: > worse than a simple counter in machine's native word size (which can
: > still get incorrect on some architectures).
: >
: > I expect you know that long is usually 64bit wide on 64bit
: > architectures. The discussion about 64bit counters on 32bit machines
: > doesn't make much sense when AMD64 is becoming the mainstream
: > architecture and the right type to use for integers (that can get
: > "large") is long IMHO.
:
: I see. I'm mostly a userland programmer, and when there's
: a variable that might overflow 32 bits, then I always use a
: 64 bit type (e.g. uint64_t), no matter whether I'm on a 32
: bit or 64 bit architecture. It's all about portability and
: reliability. In fact, I rarely use "long", because I think
: it's not very useful.
:
: However, I got your point. Kernel programming is different
: from userland programming, and I'm aware that using 64 bit
: values can cause problems on 32 bit architectures (which I
: mentioned in my previous mail).
One approach that we could use for 64-bit counters would be to just
use 32-bits one, and poll them for overflow and bump an overflow
count. This assumes that the 32-bit counters overflow much less often
than the polling interval, and easily triples the amount of storage
for each of them... It is ugly :-(
Warner
More information about the freebsd-current
mailing list