Re: [PATCH] tracing: Kernel access to Ftrace instances

From: Divya Indi
Date: Wed May 15 2019 - 21:53:51 EST


Hi Masami,

Thanks for pointing it out.

Yes, it should not be static.

On 5/15/19 5:09 PM, Masami Hiramatsu wrote:
HI Divya,

On Wed, 20 Mar 2019 11:28:51 -0700
Divya Indi <divya.indi@xxxxxxxxxx> wrote:

Ftrace provides the feature âinstancesâ that provides the capability to
create multiple Ftrace ring buffers. However, currently these buffers
are created/accessed via userspace only. The kernel APIs providing these
features are not exported, hence cannot be used by other kernel
components.

This patch aims to extend this infrastructure to provide the
flexibility to create/log/remove/ enable-disable existing trace events
to these buffers from within the kernel.

Signed-off-by: Divya Indi <divya.indi@xxxxxxxxxx>
Reviewed-by: Joe Jin <joe.jin@xxxxxxxxxx>
Would you tested these APIs with your module? Since,
[...]
diff --git a/kernel/trace/trace_events.c b/kernel/trace/trace_events.c
index 5b3b0c3..81c038e 100644
--- a/kernel/trace/trace_events.c
+++ b/kernel/trace/trace_events.c
@@ -832,6 +832,7 @@ static int ftrace_set_clr_event(struct trace_array *tr, char *buf, int set)
return ret;
}
+EXPORT_SYMBOL_GPL(ftrace_set_clr_event);
I found this exports a static function to module. Did it work?

I had tested the changes with my module. This change to static was added in the test patch, but somehow missed it in the final patch that was sent out.

Will send a new patch along with a few additional ones to add some NULL checks to ensure safe usage by modules and add the APIs to a header file that can be used by the modules.

Thanks,

Divya


Thank you,