Skip site navigation (1)Skip section navigation (2)
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>