From owner-freebsd-current@FreeBSD.ORG Tue Dec 2 16:48:37 2014 Return-Path: Delivered-To: current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 592BB540; Tue, 2 Dec 2014 16:48:37 +0000 (UTC) Received: from vps1.elischer.org (vps1.elischer.org [204.109.63.16]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "vps1.elischer.org", Issuer "CA Cert Signing Authority" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 29DFF12E; Tue, 2 Dec 2014 16:48:36 +0000 (UTC) Received: from Julian-MBP3.local (ppp121-45-246-72.lns20.per2.internode.on.net [121.45.246.72]) (authenticated bits=0) by vps1.elischer.org (8.14.9/8.14.9) with ESMTP id sB2GmW2K051197 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NO); Tue, 2 Dec 2014 08:48:34 -0800 (PST) (envelope-from julian@freebsd.org) Message-ID: <547DED5A.4050307@freebsd.org> Date: Wed, 03 Dec 2014 00:48:26 +0800 From: Julian Elischer User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:24.0) Gecko/20100101 Thunderbird/24.6.0 MIME-Version: 1.0 To: Warner Losh Subject: Re: witness and modules. References: <54788FF3.3030602@freebsd.org> <2805430.yZtslRjaC7@ralph.baldwin.cx> <547D4947.4040203@freebsd.org> In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Cc: freebsd-current@freebsd.org, FreeBSD Current X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 02 Dec 2014 16:48:37 -0000 On 12/3/14, 12:24 AM, Warner Losh wrote: >> On Dec 1, 2014, at 10:08 PM, Julian Elischer wrote: >> >> On 12/1/14, 11:39 PM, John Baldwin wrote: >>> On Friday, November 28, 2014 11:08:35 PM Julian Elischer wrote: >>>> Do we need to compile all modules with witness definitions when >>>> linking with a kernel compiled with witness? >>>> This was true at one stage but I remember some work was done to make >>>> them compatible. >>> You should not need this. modules always call functions in the kernel for >>> lock operations and this functions are what invoke WITNESS. >>> >> that's what I thought but empirical evidence disagrees. >> I'll try some more cases. > I swap back and forth all the time between the two. Kernel modules don’t > change when you compile them with WITNESS or without. > > Warner > it's a 10.0 based system. the zfs kernel module grew a reference to witness_restore and witness_save when it was compiled with witness in opt_global.h. I certainly wouldn't load with a standard kernel. it may have been somethign funny with the zfs compat layer stuff, and I'm pretty sure people don't use zfs as a module much, but it was definitely there. note: it'd probably work the other way around.. a non-witness module would probably load on a witness kernel.. none of the other kernel modules had that extra reference so I think it's specific to zfs. Maybe to the way it was compiled.. the sources are pretty standard but the makefiles are a bit hacked..