From: Steven Rostedt <rostedt@goodmis.org>
To: linux-kernel@vger.kernel.org
Cc: Ingo Molnar <mingo@kernel.org>,
Andrew Morton <akpm@linux-foundation.org>,
Masami Hiramatsu <mhiramat@kernel.org>
Subject: [for-next][PATCH 6/7] tracing: Decrement trace_array when bootconfig creates an instance
Date: Sun, 26 Jan 2020 14:19:38 -0500 [thread overview]
Message-ID: <20200126192021.212605347@goodmis.org> (raw)
In-Reply-To: 20200126191932.984391723@goodmis.org
From: "Steven Rostedt (VMware)" <rostedt@goodmis.org>
The trace_array_get_by_name() creates a ftrace instance and
trace_array_put() is used to remove the reference. Even though the
trace_array_get_by_name() creates the instance, it also adds a reference
count to it, that prevents user space from removing it.
As the bootconfig just creates the instance on boot up, it should still be
used where it can be deleted by user space after boot. A trace_array_put()
is required to let that happen.
Also, change the documentation on trace_array_get_by_name() to make this not
be so confusing.
Link: https://lore.kernel.org/r/20200124205927.76128804@rorschach.local.home
Fixes: 4f712a4d04a4e ("tracing/boot: Add instance node support")
Acked-by: Masami Hiramatsu <mhiramat@kernel.org>
Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
---
kernel/trace/trace.c | 4 ++++
kernel/trace/trace_boot.c | 1 +
2 files changed, 5 insertions(+)
diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
index 6fed9b0a8d58..0a5569b1cace 100644
--- a/kernel/trace/trace.c
+++ b/kernel/trace/trace.c
@@ -8602,6 +8602,10 @@ static int instance_mkdir(const char *name)
* NOTE: This function increments the reference counter associated with the
* trace array returned. This makes sure it cannot be freed while in use.
* Use trace_array_put() once the trace array is no longer needed.
+ * If the trace_array is to be freed, trace_array_destroy() needs to
+ * be called after the trace_array_put(), or simply let user space delete
+ * it from the tracefs instances directory. But until the
+ * trace_array_put() is called, user space can not delete it.
*
*/
struct trace_array *trace_array_get_by_name(const char *name)
diff --git a/kernel/trace/trace_boot.c b/kernel/trace/trace_boot.c
index cd541ac1cbc1..2f616cd926b0 100644
--- a/kernel/trace/trace_boot.c
+++ b/kernel/trace/trace_boot.c
@@ -327,6 +327,7 @@ trace_boot_init_instances(struct xbc_node *node)
continue;
}
trace_boot_init_one_instance(tr, inode);
+ trace_array_put(tr);
}
}
--
2.24.1
next prev parent reply other threads:[~2020-01-26 19:20 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-01-26 19:19 [for-next][PATCH 0/7] tracing: Some very old (and some new) patches for 5.6 Steven Rostedt
2020-01-26 19:19 ` [for-next][PATCH 1/7] tracing: Fix very unlikely race of registering two stat tracers Steven Rostedt
2020-01-26 19:19 ` [for-next][PATCH 2/7] tracing: Fix tracing_stat return values in error handling paths Steven Rostedt
2020-01-26 19:19 ` [for-next][PATCH 3/7] tracing: Set kernel_stacks caller size properly Steven Rostedt
2020-01-26 19:19 ` [for-next][PATCH 4/7] tracing: Remove unneeded NULL check Steven Rostedt
2020-01-26 19:19 ` [for-next][PATCH 5/7] tracing: Fix comments about trace/ftrace.h Steven Rostedt
2020-01-26 19:19 ` Steven Rostedt [this message]
2020-01-26 19:19 ` [for-next][PATCH 7/7] tracing: Use pr_err() instead of WARN() for memory failures Steven Rostedt
2020-01-26 20:38 ` Joe Perches
2020-01-26 20:50 ` Steven Rostedt
2020-01-26 21:07 ` Joe Perches
2020-01-26 21:40 ` Steven Rostedt
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200126192021.212605347@goodmis.org \
--to=rostedt@goodmis.org \
--cc=akpm@linux-foundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mhiramat@kernel.org \
--cc=mingo@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox