Current-Users archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: Revisiting DTrace syscall provider
On Wed, Feb 25, 2015 at 12:35 PM, Ryota Ozaki <ozaki-r%netbsd.org@localhost> wrote:
> On Wed, Feb 25, 2015 at 4:10 AM, bch <brad.harder%gmail.com@localhost> wrote:
>> w/ latest -current:
>>
>> % dtrace -l
>> BEGIN
>> END
>> ERROR
>> % dtrace -n BEGIN
>> <fault/reboot>
>>
>>
>> This is w/o loading any kernel modules, but the probes are still
>> listed as available, but then fault.
>
> Autoloading modules is a feature of NetBSD. You can see solaris.kmod
> and dtrace.kmod are loaded after dtrace -l. Note that BEGIN, END,
> ERROR are 'dtrace' provider that is included in dtrace.kmod.
>
> OTOH, the fault should be a bug. I'm investigating it.
Got it. NetBSD has also auto-unloading feature and it unloads
dtarce.kmod after kern.module.autotime sec since auto-loading.
Currently dtrace.kmod allows being unloaded without caring of users.
A quick fix is:
diff --git a/external/cddl/osnet/dev/dtrace/dtrace_modevent.c
b/external/cddl/osnet/dev/dtrace/dtrace_modevent.c
index 9df0cd1..40c8e7f 100644
--- a/external/cddl/osnet/dev/dtrace/dtrace_modevent.c
+++ b/external/cddl/osnet/dev/dtrace/dtrace_modevent.c
@@ -38,6 +38,8 @@ dtrace_modcmd(modcmd_t cmd, void *data)
case MODULE_CMD_FINI:
dtrace_unload();
return devsw_detach(NULL, &dtrace_cdevsw);
+ case MODULE_CMD_AUTOUNLOAD:
+ return EBUSY;
default:
return ENOTTY;
}
It prevents auto-unloading. It should fix the problem.
Thanks,
ozaki-r
Home |
Main Index |
Thread Index |
Old Index