Re: kasserts behind invariants

From: Sean Bruno <seanbru_at_yahoo-inc.com>
Date: Fri, 13 Dec 2013 15:05:51 -0800
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
Received on Fri Dec 13 2013 - 22:16:31 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:45 UTC