Poul-Henning Kamp wrote: > In message <xfmail.990430112019....@polstra.com>, John Polstra writes: >> >>You're being totally unrealistic. You can't create >2^32 of >>_anything_ on an i386 without running out of memory. > > Well, John, you can, the newer ones will address 2^36 bytes of memory > and even a i386 can address 2^32 bytes or 2^35 bits... > > But hair splitting aside,
If we're going to split hairs, how about this: To make a reference count exceed 2^32, you need to have >2^32 different pointers pointing to it. A pointer takes 2^2 bytes on the i386. So that's 2^34 bytes of memory you'd need just to store the pointers. You'd better hope you don't get a panic on that mother! It might take quite awhile to write a 16 GByte crash dump. :-) > you certainly cannot create 2^32 routes without having other > significant problems, and while I agree with Rod that the overflow > should be checked, I think it should be done with a KASSERT() if not > just with a comment. A check would be worthwhile to detect bugs in the code (increments without matching decrements). If you want to check for bona-fide overflows, you'd best be prepared to check every counter in the system. John --- John Polstra j...@polstra.com John D. Polstra & Co., Inc. Seattle, Washington USA "Self-interest is the aphrodisiac of belief." -- James V. DeLong To Unsubscribe: send mail to majord...@freebsd.org with "unsubscribe freebsd-current" in the body of the message