svn commit: r332860 - head/sys/kern

Conrad Meyer cem at freebsd.org
Sat Apr 21 17:53:49 UTC 2018


On Sat, Apr 21, 2018 at 10:05 AM, Jonathan T. Looney <jtl at freebsd.org> wrote:
> Author: jtl
> Date: Sat Apr 21 17:05:00 2018
> New Revision: 332860
> URL: https://svnweb.freebsd.org/changeset/base/332860
>
> Log:
>   When running with INVARIANTS, the kernel contains extra checks.  However,
>   these assumptions may not hold true once we've panic'd. Therefore, the
>   checks hold less value after a panic.  Additionally, if one of the checks
>   fails while we are already panic'd, this creates a double-panic which can
>   interfere with debugging the original panic.
>
>   Therefore, this commit allows an administrator to suppress a response to
>   KASSERT checks after a panic by setting a tunable/sysctl.  The
>   tunable/sysctl (debug.kassert.suppress_in_panic) defaults to being
>   enabled.

Hi Jonathan,

I don't think this should be enabled by default.  Can we leave it
disabled by default and let consumers opt-in?

To expand on this a little: this is a big hammer.  We already disable
specific invariants in a few cases during panic (lock assertions come
to mind).  If there are specific assertions that do not hold during
panic, we can/should selectively weaken them.  But in general,
invariants are invariant, and we should not proceed past violated ones
by default.

Thanks,
Conrad


More information about the svn-src-all mailing list