Date: Mon, 29 Jul 2013 20:39:12 -0600 From: "Justin T. Gibbs" <gibbs@FreeBSD.org> To: Steven Hartland <killing@multiplay.co.uk> Cc: Andriy Gapon <avg@FreeBSD.org>, freebsd-arch@FreeBSD.org Subject: Re: translate INVARIANTS to DEBUG for code from OpenSolaris Message-ID: <751C9B66-0476-4E3B-AF07-FAFF2F54FEBB@FreeBSD.org> In-Reply-To: <69CEF0CC3C8C4B9BBA8E3ACACB18DC2B@multiplay.co.uk> References: <51F67B2A.3040302@FreeBSD.org> <69CEF0CC3C8C4B9BBA8E3ACACB18DC2B@multiplay.co.uk>
next in thread | previous in thread | raw e-mail | index | archive | help
On Jul 29, 2013, at 12:25 PM, Steven Hartland <killing@multiplay.co.uk> = wrote: > ----- Original Message ----- From: "Andriy Gapon" <avg@FreeBSD.org> >=20 >> [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. >=20 > I'm not sure you need #define ZFS_DEBUG as its already a dependency on > DEBUG see: > sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_debug.h >=20 > Should this connection be broken and INVARIANTS only trigger DEBUG by > default? One potential reason for this distinction is that ZFS_DEBUG = brings > with it some potentially quite heavy weight validation such as = dnode_verify. I would prefer to have INVARIANTS enable all of the ZFS invariant code, = not just the asserts. Folks already know that INVARIANTS means (sometimes quite significantly) lower performance. This is a small price to pay = for catching defects before a release. -- Justin=
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?751C9B66-0476-4E3B-AF07-FAFF2F54FEBB>