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

Reply via email to