From owner-freebsd-arch@FreeBSD.ORG Mon Jul 29 18:25:24 2013 Return-Path: Delivered-To: freebsd-arch@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id EC8527E8; Mon, 29 Jul 2013 18:25:23 +0000 (UTC) (envelope-from prvs=1922be3455=killing@multiplay.co.uk) Received: from mail1.multiplay.co.uk (mail1.multiplay.co.uk [85.236.96.23]) (using TLSv1 with cipher RC4-MD5 (128/128 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 6A5882728; Mon, 29 Jul 2013 18:25:23 +0000 (UTC) Received: from r2d2 ([82.69.141.170]) by mail1.multiplay.co.uk (mail1.multiplay.co.uk [85.236.96.23]) (MDaemon PRO v10.0.4) with ESMTP id md50005209219.msg; Mon, 29 Jul 2013 19:25:20 +0100 X-Spam-Processed: mail1.multiplay.co.uk, Mon, 29 Jul 2013 19:25:20 +0100 (not processed: message from valid local sender) X-MDDKIM-Result: neutral (mail1.multiplay.co.uk) X-MDRemoteIP: 82.69.141.170 X-Return-Path: prvs=1922be3455=killing@multiplay.co.uk X-Envelope-From: killing@multiplay.co.uk Message-ID: <69CEF0CC3C8C4B9BBA8E3ACACB18DC2B@multiplay.co.uk> From: "Steven Hartland" To: "Andriy Gapon" , References: <51F67B2A.3040302@FreeBSD.org> Subject: Re: translate INVARIANTS to DEBUG for code from OpenSolaris Date: Mon, 29 Jul 2013 19:25:54 +0100 MIME-Version: 1.0 Content-Type: text/plain; format=flowed; charset="iso-8859-1"; reply-type=original Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2900.5931 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.6157 X-BeenThere: freebsd-arch@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Discussion related to FreeBSD architecture List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Jul 2013 18:25:24 -0000 ----- Original Message ----- From: "Andriy Gapon" > [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. 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 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. If so I have small list of additional fixes here that where required when I tested enabling ASSERTS checking without ZFS_DEBUG. What do others think, should INVARIANTS trigger ZFS_DEBUG or should that be kept seperate? Regards Steve ================================================ This e.mail is private and confidential between Multiplay (UK) Ltd. and the person or entity to whom it is addressed. In the event of misdirection, the recipient is prohibited from using, copying, printing or otherwise disseminating it or any information contained in it. In the event of misdirection, illegible or incomplete transmission please telephone +44 845 868 1337 or return the E.mail to postmaster@multiplay.co.uk.