kasserts behind invariants
Sean Bruno
seanbru at yahoo-inc.com
Fri Dec 13 23:16:31 UTC 2013
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
More information about the freebsd-current
mailing list