Date: Thu, 25 Sep 2014 09:14:58 -0700 From: Adrian Chadd <adrian@freebsd.org> To: Bryan Drewery <bdrewery@freebsd.org> Cc: "freebsd-arch@freebsd.org" <freebsd-arch@freebsd.org> Subject: Re: KASSERT_WARN for asserting malloc(M_WAITOK) not in a non-sleepable thread Message-ID: <CAJ-Vmok5Xaa6aZvfL1GoW8C==dY47P=vKAEZhu16JhHjV%2BTk9g@mail.gmail.com> In-Reply-To: <5424392D.9030201@FreeBSD.org> References: <54236CD6.4050807@FreeBSD.org> <CACYV=-Eg69AQ72DOGppPSL7whJVCdcNg-auhBZ771iG7DfPdAw@mail.gmail.com> <5424392D.9030201@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
Hi, Please bring in KASSERT_WARN(). I'm grown up enough to use KASSERT_WARN() along with handling the invariant check myself in code. Having KASSERT_WARN() means I can add in this rather than printf()s or device_printf()'s with various knobs to remove it. (This is absolutely _not_ the "should KASSERT() optionally just log" argument. I'm not going to get into that a second time.) -a On 25 September 2014 08:47, Bryan Drewery <bdrewery@freebsd.org> wrote: > On 9/24/2014 9:56 PM, Davide Italiano wrote: >> On Wed, Sep 24, 2014 at 6:16 PM, Bryan Drewery <bdrewery@freebsd.org> wrote: >>> Hi, >>> >>> I've placed 2 reviews out in relation to >>> https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=193696: >>> >>> Add KASSERT_WARN which will work just like KASSERT except that no panic >>> will occur. My own expectation would be that any use of it would >>> eventually be promoted to a full KASSERT. It would only be used where >>> the impact is not known yet on all hardware/devices. We don't want to >>> go adding a KASSERT and break boot for a whole class of systems. >>> >>> https://reviews.freebsd.org/D829 - KASSERT_WARN >>> >> >> FYI, I'm not excited about the idea. If you introduce an assert you >> want some invariant to not be violated. If it's violated, there's >> something clearly going wrong and you need to stop and think about it. >> I guess that in most cases is just better fail early, rather than keep >> going with the system in a semi-functional state. Also, please note >> that once a KPI is introduced in the kernel, everybody may start >> abusing it. >> A previous attempt (in my opinion wrong) was made to have KASSERT to >> log rather than panic. It actually didn't lead to any benefit, >> apparently. FWIW, at least your approach is more fine grained. >> >> -- >> Davide > > I would be comfortable adding it in as a full KASSERT (and not bringing > in KASSERT_WARN) if other people test the patch in > https://reviews.freebsd.org/D830 and change them to KASSERT. If the > fallout is not too bad then we can commit the real assert. > > -- > Regards, > Bryan Drewery >
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAJ-Vmok5Xaa6aZvfL1GoW8C==dY47P=vKAEZhu16JhHjV%2BTk9g>