Date: Wed, 11 May 2016 09:04:41 -0700 From: Alfred Perlstein <alfred@freebsd.org> To: freebsd-arch@freebsd.org Subject: Re: KASSERT: always assert; KWARN Message-ID: <ca489ff1-f520-3feb-0525-425eb015af7a@freebsd.org> In-Reply-To: <CAG6CVpWzuK6cZx3QnQhKOu=6GZBJF4cJQdNXgJZeXYhuJJANJg@mail.gmail.com> References: <CAG6CVpWzuK6cZx3QnQhKOu=6GZBJF4cJQdNXgJZeXYhuJJANJg@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On 5/10/16 6:24 PM, Conrad Meyer wrote:
> Thoughts or objections? Does anyone like the ability to opt out of
> invariants asserts?
Yes.
During my time at iXsystems we used this facility several times to get a
log from a customer site with a number of "kasserts".
The reason we did this was multiple reasons:
1) We needed to ship a kernel with asserts enabled.
2) When we did, the first assert hit was:
a) In an unrelated module and not relevant.
b) Not enough information came back from just the first assert.
3) We found it more useful to get multiple errors back from a customer
in one trip rather than one fix at a time. Unfortunately one fix at a
time would have had us lose the customer.
The KASSERT/assert system is very, very, very useful. However if you
are at a last resort sending a debug kernel (with Kassert enabled) and
do not get enough information back then you will lose that customer.
I understand that a few vocal folks are upset, like seriously, seriously
upset, however at the time this was the only way we could effectively
debug a customer problem and my hope was that others could make use of
it as well.
Linux has had a similar functionality for many years. In Linux there is
the kernel "oops()" which does nearly the same thing.
Initially I mocked Linux's "oops" for being silly and "wrong", using the
exact same reasons that many have used to dislike "kassert_warn".
However once I was responsible for an extremely pissed off customer who
was paying us quite a sum of money AND I was not getting enough
information back, I changed my mind.
https://en.wikipedia.org/wiki/Linux_kernel_oops
-Alfred
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?ca489ff1-f520-3feb-0525-425eb015af7a>
