witness and modules.

Julian Elischer julian at freebsd.org
Tue Dec 2 16:48:37 UTC 2014


On 12/3/14, 12:24 AM, Warner Losh wrote:
>> On Dec 1, 2014, at 10:08 PM, Julian Elischer <julian at freebsd.org> 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..





More information about the freebsd-current mailing list