Search code examples
clinux-kerneltracetracepoint

Where is the kernel symbol __tracepoint_module_load defined?


Where is the kernel symbol __tracepoint_module_load defined?
I saw it once in /proc/kallsyms, but now I can't find it.

bootlin.com/linux/ cannot find it, either.


Solution

  • Where is the kernel symbol __tracepoint_module_load defined ?

    There is TRACE_EVENT macro, which eventually uses __DECLARE_TRACE, where you can see:

    extern struct tracepoint __tracepoint_##name;
    

    So we can find the appropriate TRACE_EVENT "call" for module_load in include/trace/events/module.h:

    TRACE_EVENT(module_load,
    ...
    

    In /proc/kallsyms output D means that the symbol is in the initialized data section:

    ffffffff91af5240 D __tracepoint_module_load
    

    P.S. In case of preprocessor magic elixir.bootlin.com is not so useful. To make a real investigation just clone Linux kernel or download the appropriate sources from pub.