translate INVARIANTS to DEBUG for code from OpenSolaris

Andriy Gapon avg at FreeBSD.org
Mon Jul 29 14:25:50 UTC 2013


[zfs-devel@, fs@, dtrace@ are Bcc-ed]

In OpenSolaris and its descendants DEBUG is used in a fashion similar to our
INVARIANTS.  For example, ASSERT macros are enabled by it.
In our kernel code DEBUG has a different meaning and enables far too verbose or
far too obscure code and, as such, it is very rarely enabled.

The idea of a change that I would like to propose is to translate INVARIANTS
kernel option into DEBUG for the files that originated from OpenSolaris (and
hopefully only for them).

The change:
    opensolaris code: translate INVARIANTS to DEBUG and ZFS_DEBUG

    do this by forcing inclusion of
    sys/cddl/compat/opensolaris/sys/debug_compat.h
    via -include option into all source files from OpenSolaris.
    Note that this -include option must always be after -include opt_global.h.

    Additionally, remove forced definition of DEBUG for some modules and fix
    their build without DEBUG.

    Also, meaning of DEBUG was overloaded to enable WITNESS support for some
    OpenSolaris (primarily ZFS) locks.  Now this overloading is removed and
    that use of DEBUG is replaced with a new option OPENSOLARIS_WITNESS.

http://people.freebsd.org/~avg/osol-invariants-debug.diff

I would like to ask for your feedback on the soundness of the whole idea.
Also on the name, location and style of inclusion for
sys/cddl/compat/opensolaris/sys/debug_compat.h.
And on any other details of the proposed change.

Testing is also welcome, of course.

Thank you very much.
-- 
Andriy Gapon


More information about the freebsd-fs mailing list