: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
We do check some critical reference-count fields for overflow. But it doesn't make sense to check all of them. This particular reference count has no related bugs that we know of apart from legally bumping past 65536, so it would be kinda silly to check it for an overflow. If one insisted, I suppose we could add a check if INVARIANTS is enabled but I don't see any advantage to doing so in this case. -Matt To Unsubscribe: send mail to majord...@freebsd.org with "unsubscribe freebsd-current" in the body of the message