Date: Thu, 12 Jul 2012 20:17:41 +0200 From: Fabian Keil <freebsd-listen@fabiankeil.de> To: Benjamin Kaduk <kaduk@MIT.EDU> Cc: freebsd-hackers@freebsd.org, Sean Bruno <seanbru@yahoo-inc.com> Subject: Re: dtraceall.ko with old nfsclient Message-ID: <20120712201741.34573af4@fabiankeil.de> In-Reply-To: <alpine.GSO.1.10.1207112007240.18441@multics.mit.edu> 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> <alpine.GSO.1.10.1207112007240.18441@multics.mit.edu>
next in thread | previous in thread | raw e-mail | index | archive | help
[-- Attachment #1 --]
Benjamin Kaduk <kaduk@MIT.EDU> wrote:
> On Wed, 11 Jul 2012, Fabian Keil wrote:
>
> > I'm using the following modification of Sean's patch:
This way it seems to work as expected:
diff --git a/sys/modules/dtrace/dtraceall/Makefile b/sys/modules/dtrace/dtraceall/Makefile
index 456efd1..628583b 100644
--- a/sys/modules/dtrace/dtraceall/Makefile
+++ b/sys/modules/dtrace/dtraceall/Makefile
@@ -1,7 +1,7 @@
# $FreeBSD: src/sys/modules/dtrace/dtraceall/Makefile,v 1.3 2011/04/09 09:07:31 uqs Exp $
KMOD= dtraceall
-SRCS= dtraceall.c opt_compat.h
+SRCS= dtraceall.c opt_compat.h opt_nfs.h
CFLAGS+= -I${.CURDIR}/../../..
diff --git a/sys/modules/dtrace/dtraceall/dtraceall.c b/sys/modules/dtrace/dtraceall/dtraceall.c
index d256489..0672556 100644
--- a/sys/modules/dtrace/dtraceall/dtraceall.c
+++ b/sys/modules/dtrace/dtraceall/dtraceall.c
@@ -33,6 +33,7 @@
#include <sys/module.h>
#include <sys/errno.h>
#include "opt_compat.h"
+#include "opt_nfs.h"
static int
dtraceall_modevent(module_t mod __unused, int type, void *data __unused)
@@ -67,8 +68,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);
> > Note that dtnfscl.ko is not loaded even though loading
> > it manually works and I have NFSCL in the kernel.
I wasn't entirely clear here, what I meant was that
the KERNCONF used when compiling the module included
"options NFSCL". I didn't expect run-time detection.
> 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?)
Yes.
> You would still need to address Andriy's comments in order to ensure that
> the configuration seen by the module matches the kernel.
Sure.
Fabian
[-- Attachment #2 --]
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.19 (FreeBSD)
iEYEARECAAYFAk//FMcACgkQBYqIVf93VJ2yTwCdGKuZD+8+fzB/V0rNGGSn/x/G
+zEAoMclL8F9/52dQgi+V4tQjf+Pu0Br
=1cUD
-----END PGP SIGNATURE-----
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20120712201741.34573af4>
