Re: [Question] Are the trace APIs declared by "TRACE_EVENT(irq_handler_entry" allowed to be used in Ko?

From: Steven Rostedt
Date: Tue Sep 11 2018 - 23:57:33 EST


On Wed, 12 Sep 2018 10:08:37 +0800
"Leizhen (ThunderTown)" <thunder.leizhen@xxxxxxxxxx> wrote:

> After patch 7e066fb870fc ("tracepoints: add DECLARE_TRACE() and DEFINE_TRACE()"),
> the trace APIs declared by "TRACE_EVENT(irq_handler_entry" can not be directly used
> by ko, because it's not explicitly exported by EXPORT_TRACEPOINT_SYMBOL_GPL or
> EXPORT_TRACEPOINT_SYMBOL.
>
> Did we miss it? or it's not recommended to be used in ko?
>

Why do you need it. This patch is almost 10 years old, and you are just
now finding an issue with it?

-- Steve

>
> -------------
>
> commit 7e066fb870fcd1025ec3ba7bbde5d541094f4ce1
> Author: Mathieu Desnoyers <mathieu.desnoyers@xxxxxxxxxx>
> Date: Fri Nov 14 17:47:47 2008 -0500
>
> tracepoints: add DECLARE_TRACE() and DEFINE_TRACE()
>
> Impact: API *CHANGE*. Must update all tracepoint users.
>
> Add DEFINE_TRACE() to tracepoints to let them declare the tracepoint
> structure in a single spot for all the kernel. It helps reducing memory
> consumption, especially when declaring a lot of tracepoints, e.g. for
> kmalloc tracing.
>
> *API CHANGE WARNING*: now, DECLARE_TRACE() must be used in headers for
> tracepoint declarations rather than DEFINE_TRACE(). This is the sane way
> to do it. The name previously used was misleading.
>
> Updates scheduler instrumentation to follow this API change.
>
>