Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 13 Dec 2013 15:05:51 -0800
From:      Sean Bruno <seanbru@yahoo-inc.com>
To:        Alfred Perlstein <bright@mu.org>
Cc:        freebsd-current@freebsd.org
Subject:   Re: kasserts behind invariants
Message-ID:  <1386975951.37172.13.camel@powernoodle.corp.yahoo.com>
In-Reply-To: <52AB8DA1.3000007@mu.org>
References:  <1386971425.37172.9.camel@powernoodle.corp.yahoo.com> <52AB8DA1.3000007@mu.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, 2013-12-13 at 14:43 -0800, Alfred Perlstein wrote:
> On 12/13/13 1:50 PM, Sean Bruno wrote:
> > I guess this may have been argued before, but I don't see why we would
> > want to hide specific things like:  sys/kern/subr_lock.c
> >
> > /* Check for double-init and zero object. */
> > KASSERT(!lock_initalized(lock), ("lock \"%s\" %p already initialized",
> >          name, lock));
> >
> > If I hadn't completely missed the fact that I had INVARIANTS activated,
> > I'd never have found out why this vendor driver was being so completely
> > stupid and crashing my machine.
> >
> > If I find things like this that I want old KASSERT behavior on (panic if
> > true) and I don't want to run INVARIANTS, is that possible?
> 
> I don't understand the question, do you want to move it from INVARIANTS 
> to under just a plain if(condition)?
> 
> -Alfred
> 
> _______

In this specific instance, it would have been much better to simply
panic if(condition) than silently allowing the vendor driver to do
something stupid like initialize a mutex twice.



sean




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1386975951.37172.13.camel>