dtrace sdt problem: my fault or a generic problem (SYSINIT not working as expected for modules)?

Alexander Leidinger Alexander at Leidinger.net
Fri Mar 25 13:50:58 UTC 2011


Quoting Alexander Leidinger <Alexander at Leidinger.net> (from Fri, 25  
Mar 2011 14:14:49 +0100):

> Quoting Andriy Gapon <avg at freebsd.org> (from Fri, 25 Mar 2011  
> 12:56:56 +0200):
>
>> on 25/03/2011 11:52 Alexander Leidinger said the following:
>>> As I read it, it looks a little bit like the SYSINIT of the SDT  
>>> probes didn't
>>> work as expected for my new probes (does this work in modules?  
>>> fxr.watson.org
>>> AFAICS only lists SDT probes in kernel-code, not in module-code),  
>>> a hit with the
>>> clue-bat is welcome.
>>
>> My reading of the code is that all modules with SDT  
>> proivders/probes should be
>> loaded before sdt module itself.
>> SYSINIT in your module(s) works as expect, but dtrace_register() is  
>> not called
>> on your SDT provider.  See sys/cddl/dev/sdt/sdt.c for details:  
>> sdt_modevent ->
>> sdt_load -> sdt_provider_listall(sdt_provider_reg_callback) ->  
>> dtrace_register.
>
> So if I load linux.ko before sdt.ko, or if I unload sdt.ko and  
> reload it, it should work? I'm going to try this after sending this  
> mail.

Unloading sdt.ko was a bad idea... currently I'm waiting the machine  
recovers from this rude action.

It seems there are some modunload checks missing to prevent a kernel  
panic by unloading sdt.ko when it is not safe.

Do we have a place where we can document the current state of afairs,  
or shall I just add something to the wiki pages (the unload problem to  
the DTrace page and the load the module with SDT probes before the  
sdt.ko in the DTrace/HowToAddSDTProbes page)?

Bye,
Alexander.

-- 
BOFH excuse #378:

Operators killed by year 2000 bug bite

http://www.Leidinger.net    Alexander @ Leidinger.net: PGP ID = B0063FE7
http://www.FreeBSD.org       netchild @ FreeBSD.org  : PGP ID = 72077137


More information about the freebsd-hackers mailing list