Messages in this thread | | | Date | Fri, 27 May 2022 08:39:21 +0900 | From | Masami Hiramatsu (Google) <> | Subject | Re: [PATCH v3] tracing: Use trace_create_file() to simplify creation of tracefs entries |
| |
On Tue, 24 May 2022 12:07:13 -0400 Steven Rostedt <rostedt@goodmis.org> wrote:
> On Fri, 14 Jan 2022 21:10:52 +0800 > Yuntao Wang <ytcoode@gmail.com> wrote: > > > Creating tracefs entries with tracefs_create_file() followed by pr_warn() > > is tedious and repetitive, we can use trace_create_file() to simplify > > this process and make the code more readable. > > Sorry I missed this patch (I was in the process of changing jobs when it > was sent out, and I had COVID :-p ). I'll add it to my queue. > > Masami, this touches trace_kprobes.c, care to ACK that part?
Yes, trace_kprobes.c part looks good to me.
Acked-by: Masami Hiramatsu (Google) <mhiramat@kernel.org>
Thank you!
> > Thanks, > > -- Steve > > > > > > Signed-off-by: Yuntao Wang <ytcoode@gmail.com> > > --- > > Changes since v1: > > - Remove format change updates > > > > Changes since v2: > > - Remove unused variables > > > > kernel/trace/ftrace.c | 9 +++------ > > kernel/trace/trace_dynevent.c | 9 ++------- > > kernel/trace/trace_events.c | 29 +++++++++------------------ > > kernel/trace/trace_kprobe.c | 15 ++++---------- > > kernel/trace/trace_recursion_record.c | 7 ++----- > > 5 files changed, 21 insertions(+), 48 deletions(-) > > > > diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c > > index 403e485bf091..6d9bb73d19d3 100644 > > --- a/kernel/trace/ftrace.c > > +++ b/kernel/trace/ftrace.c > > @@ -952,7 +952,6 @@ static struct tracer_stat function_stats __initdata = { > > static __init void ftrace_profile_tracefs(struct dentry *d_tracer) > > { > > struct ftrace_profile_stat *stat; > > - struct dentry *entry; > > char *name; > > int ret; > > int cpu; > > @@ -983,11 +982,9 @@ static __init void ftrace_profile_tracefs(struct dentry *d_tracer) > > } > > } > > > > - entry = tracefs_create_file("function_profile_enabled", > > - TRACE_MODE_WRITE, d_tracer, NULL, > > - &ftrace_profile_fops); > > - if (!entry) > > - pr_warn("Could not create tracefs 'function_profile_enabled' entry\n"); > > + trace_create_file("function_profile_enabled", > > + TRACE_MODE_WRITE, d_tracer, NULL, > > + &ftrace_profile_fops); > > } > > > > #else /* CONFIG_FUNCTION_PROFILER */ > > diff --git a/kernel/trace/trace_dynevent.c b/kernel/trace/trace_dynevent.c > > index e34e8182ee4b..076b447a1b88 100644 > > --- a/kernel/trace/trace_dynevent.c > > +++ b/kernel/trace/trace_dynevent.c > > @@ -255,19 +255,14 @@ static const struct file_operations dynamic_events_ops = { > > /* Make a tracefs interface for controlling dynamic events */ > > static __init int init_dynamic_event(void) > > { > > - struct dentry *entry; > > int ret; > > > > ret = tracing_init_dentry(); > > if (ret) > > return 0; > > > > - entry = tracefs_create_file("dynamic_events", TRACE_MODE_WRITE, NULL, > > - NULL, &dynamic_events_ops); > > - > > - /* Event list interface */ > > - if (!entry) > > - pr_warn("Could not create tracefs 'dynamic_events' entry\n"); > > + trace_create_file("dynamic_events", TRACE_MODE_WRITE, NULL, > > + NULL, &dynamic_events_ops); > > > > return 0; > > } > > diff --git a/kernel/trace/trace_events.c b/kernel/trace/trace_events.c > > index 3147614c1812..718518b3c491 100644 > > --- a/kernel/trace/trace_events.c > > +++ b/kernel/trace/trace_events.c > > @@ -3446,12 +3446,10 @@ create_event_toplevel_files(struct dentry *parent, struct trace_array *tr) > > struct dentry *d_events; > > struct dentry *entry; > > > > - entry = tracefs_create_file("set_event", TRACE_MODE_WRITE, parent, > > - tr, &ftrace_set_event_fops); > > - if (!entry) { > > - pr_warn("Could not create tracefs 'set_event' entry\n"); > > + entry = trace_create_file("set_event", TRACE_MODE_WRITE, parent, > > + tr, &ftrace_set_event_fops); > > + if (!entry) > > return -ENOMEM; > > - } > > > > d_events = tracefs_create_dir("events", parent); > > if (!d_events) { > > @@ -3466,16 +3464,12 @@ create_event_toplevel_files(struct dentry *parent, struct trace_array *tr) > > > > /* There are not as crucial, just warn if they are not created */ > > > > - entry = tracefs_create_file("set_event_pid", TRACE_MODE_WRITE, parent, > > - tr, &ftrace_set_event_pid_fops); > > - if (!entry) > > - pr_warn("Could not create tracefs 'set_event_pid' entry\n"); > > + trace_create_file("set_event_pid", TRACE_MODE_WRITE, parent, > > + tr, &ftrace_set_event_pid_fops); > > > > - entry = tracefs_create_file("set_event_notrace_pid", > > - TRACE_MODE_WRITE, parent, tr, > > - &ftrace_set_event_notrace_pid_fops); > > - if (!entry) > > - pr_warn("Could not create tracefs 'set_event_notrace_pid' entry\n"); > > + trace_create_file("set_event_notrace_pid", > > + TRACE_MODE_WRITE, parent, tr, > > + &ftrace_set_event_notrace_pid_fops); > > > > /* ring buffer internal formats */ > > trace_create_file("header_page", TRACE_MODE_READ, d_events, > > @@ -3690,17 +3684,14 @@ static __init int event_trace_init_fields(void) > > __init int event_trace_init(void) > > { > > struct trace_array *tr; > > - struct dentry *entry; > > int ret; > > > > tr = top_trace_array(); > > if (!tr) > > return -ENODEV; > > > > - entry = tracefs_create_file("available_events", TRACE_MODE_READ, > > - NULL, tr, &ftrace_avail_fops); > > - if (!entry) > > - pr_warn("Could not create tracefs 'available_events' entry\n"); > > + trace_create_file("available_events", TRACE_MODE_READ, > > + NULL, tr, &ftrace_avail_fops); > > > > ret = early_event_add_tracer(NULL, tr); > > if (ret) > > diff --git a/kernel/trace/trace_kprobe.c b/kernel/trace/trace_kprobe.c > > index 3d85323278ed..5c35c2311690 100644 > > --- a/kernel/trace/trace_kprobe.c > > +++ b/kernel/trace/trace_kprobe.c > > @@ -1906,25 +1906,18 @@ core_initcall(init_kprobe_trace_early); > > static __init int init_kprobe_trace(void) > > { > > int ret; > > - struct dentry *entry; > > > > ret = tracing_init_dentry(); > > if (ret) > > return 0; > > > > - entry = tracefs_create_file("kprobe_events", TRACE_MODE_WRITE, > > - NULL, NULL, &kprobe_events_ops); > > - > > /* Event list interface */ > > - if (!entry) > > - pr_warn("Could not create tracefs 'kprobe_events' entry\n"); > > + trace_create_file("kprobe_events", TRACE_MODE_WRITE, > > + NULL, NULL, &kprobe_events_ops); > > > > /* Profile interface */ > > - entry = tracefs_create_file("kprobe_profile", TRACE_MODE_READ, > > - NULL, NULL, &kprobe_profile_ops); > > - > > - if (!entry) > > - pr_warn("Could not create tracefs 'kprobe_profile' entry\n"); > > + trace_create_file("kprobe_profile", TRACE_MODE_READ, > > + NULL, NULL, &kprobe_profile_ops); > > > > setup_boot_kprobe_events(); > > > > diff --git a/kernel/trace/trace_recursion_record.c b/kernel/trace/trace_recursion_record.c > > index 4d4b78c8ca25..a520b11afb0d 100644 > > --- a/kernel/trace/trace_recursion_record.c > > +++ b/kernel/trace/trace_recursion_record.c > > @@ -224,12 +224,9 @@ static const struct file_operations recursed_functions_fops = { > > > > __init static int create_recursed_functions(void) > > { > > - struct dentry *dentry; > > > > - dentry = trace_create_file("recursed_functions", TRACE_MODE_WRITE, > > - NULL, NULL, &recursed_functions_fops); > > - if (!dentry) > > - pr_warn("WARNING: Failed to create recursed_functions\n"); > > + trace_create_file("recursed_functions", TRACE_MODE_WRITE, > > + NULL, NULL, &recursed_functions_fops); > > return 0; > > } > > >
-- Masami Hiramatsu (Google) <mhiramat@kernel.org>
| |