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>