INVARIANTS (was Re: RELENG_4 -> 5 -> 6: significant performance regression)

Kris Kennaway kris at
Sat May 13 08:58:31 PDT 2006

On Sat, May 13, 2006 at 10:52:32AM -0500, Matthew D. Fuller wrote:
> On Sat, May 13, 2006 at 10:37:40AM -0400 I heard the voice of
> Kris Kennaway, and lo! it spake thus:
> > 
> > With respect to INVARIANTS, you just need to get used to the fact
> > that running thousands of checks for bugs is incompatible with
> > running at optimal speed.
> (I'm not sure what the point of saying this is, really, but I'll say
> it anyway.)
> I've run all my systems with INVARIANTS for at least as long as I've
> known it was there.  While more performance is always good, hardly any
> of my systems are so constrained as to need every bit of suds all the
> time; trading off a bit of performance for a better chance of catching
> a problem before it really screws something up is just a no-brainer.
> Additionally (and especially on -CURRENT), I run it because I think
> more people run it than don't, and while theoretically it should just
> add checks, I know there are places where it changes code paths much
> more than that.  So, the !(INVARIANTS) code paths don't get exercised
> as much, and I worry about bugs hiding there that don't get found (I
> think I recall a case or three over the years of just that happening).
> Like everyone, I'm sure, I'm all for ferreting out bugs and getting
> them fixed, but I'd rather not have to bust my virtual face on the
> virtual concrete to do it    ;)

FYI, INVARIANTS adds checks but does not (is not supposed to) divert
code paths.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 187 bytes
Desc: not available
Url :

More information about the freebsd-stable mailing list