Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 11 Jul 2012 20:10:40 -0400 (EDT)
From:      Benjamin Kaduk <kaduk@MIT.EDU>
To:        Fabian Keil <freebsd-listen@fabiankeil.de>
Cc:        rmacklem@freebsd.org, freebsd-hackers@freebsd.org
Subject:   Re: dtraceall.ko with old nfsclient
Message-ID:  <alpine.GSO.1.10.1207112007240.18441@multics.mit.edu>
In-Reply-To: <20120711122935.1382e76d@fabiankeil.de>
References:  <1341863341.6064.11.camel@powernoodle.corp.yahoo.com> <4FFB4770.7050209@FreeBSD.org> <20120710154128.192eb8d6@fabiankeil.de> <1341939155.2573.8.camel@powernoodle.corp.yahoo.com> <20120710205702.5e57168b@fabiankeil.de> <4FFC8479.9080608@FreeBSD.org> <20120711122935.1382e76d@fabiankeil.de>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, 11 Jul 2012, Fabian Keil wrote:

> I'm using the following modification of Sean's patch:
>
> diff --git a/sys/modules/dtrace/dtraceall/dtraceall.c b/sys/modules/dtrace/dtraceall/dtraceall.c
> index c57f590..d50b1e5 100644
> --- a/sys/modules/dtrace/dtraceall/dtraceall.c
> +++ b/sys/modules/dtrace/dtraceall/dtraceall.c
> @@ -67,8 +67,11 @@ MODULE_DEPEND(dtraceall, opensolaris, 1, 1, 1);
> MODULE_DEPEND(dtraceall, dtrace, 1, 1, 1);
> MODULE_DEPEND(dtraceall, dtio, 1, 1, 1);
> MODULE_DEPEND(dtraceall, dtmalloc, 1, 1, 1);
> +#if defined (NFSCL)
> MODULE_DEPEND(dtraceall, dtnfscl, 1, 1, 1);
> +#elif defined (NFSCLIENT)
> MODULE_DEPEND(dtraceall, dtnfsclient, 1, 1, 1);
> +#endif
> #if defined(__amd64__) || defined(__i386__)
> MODULE_DEPEND(dtraceall, fbt, 1, 1, 1);
> MODULE_DEPEND(dtraceall, fasttrap, 1, 1, 1);
>
> The perceived problem is that after compiling dtraceall with
> "make buildkernel", installing it with "make installkernel"
> and rebooting, loading it results in:
>
> fk@r500 ~ $kldstat
> Id Refs Address            Size     Name
> 1   73 0xffffffff80200000 e492c0   kernel
> 2    1 0xffffffff8104a000 226928   zfs.ko
> 3   14 0xffffffff81271000 82b8     opensolaris.ko
> 4    1 0xffffffff8127a000 23a48    geom_eli.ko
> 5    2 0xffffffff8129e000 34380    crypto.ko
> 7    1 0xffffffff812fe000 8640     acpi_video.ko
> 8    1 0xffffffff81307000 7d00     acpi_ibm.ko
> 9    4 0xffffffff81412000 29e31    usb.ko
> 10    1 0xffffffff8143c000 32ec     usb_quirk.ko
> 11    1 0xffffffff81440000 bded     ehci.ko
> 12    1 0xffffffff8144c000 8d02     umass.ko
> 13    1 0xffffffff81455000 5c2a     nullfs.ko
> 14    1 0xffffffff8145b000 51ac     fdescfs.ko
> 15    1 0xffffffff81461000 beb4     i915.ko
> 16    1 0xffffffff8146d000 173cc    drm.ko
> 17    1 0xffffffff81485000 b25      dtraceall.ko
> 18    1 0xffffffff81486000 4e00     profile.ko
> 19    3 0xffffffff8148b000 4073     cyclic.ko
> 20   10 0xffffffff81490000 23b931   dtrace.ko
> 21    1 0xffffffff816cc000 125da    systrace_freebsd32.ko
> 22    1 0xffffffff816df000 13797    systrace.ko
> 23    1 0xffffffff816f3000 44be     sdt.ko
> 24    1 0xffffffff816f8000 484d     lockstat.ko
> 25    1 0xffffffff816fd000 bce5     fasttrap.ko
> 26    1 0xffffffff81709000 6553     fbt.ko
> 27    1 0xffffffff81710000 448b     dtmalloc.ko
> 28    1 0xffffffff81715000 43d9     dtio.ko
>
> Note that dtnfscl.ko is not loaded even though loading
> it manually works and I have NFSCL in the kernel.

This is because dtraceall.c only #includes opt_compat.h, and the kernel 
build system only passes -include opt_global.h, so the dtraceall module 
build has no way of knowing about the NFSCL{IENT,} options defined in 
opt_nfs.h.  (As you noted earlier in the thread?)
You would still need to address Andriy's comments in order to ensure that 
the configuration seen by the module matches the kernel.

-Ben Kaduk



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?alpine.GSO.1.10.1207112007240.18441>