All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Tzvetomir Stoyanov (VMware)" <tz.stoyanov@gmail.com>
To: rostedt@goodmis.org
Cc: linux-trace-devel@vger.kernel.org
Subject: [PATCH 1/2] trace-cmd: Add helper function to print content of a trace file
Date: Tue, 21 Apr 2020 13:47:12 +0300	[thread overview]
Message-ID: <20200421104713.31762-2-tz.stoyanov@gmail.com> (raw)
In-Reply-To: <20200421104713.31762-1-tz.stoyanov@gmail.com>

trace-cmd stat command prints various information about the current
ftrace configuration. Some of it is just a dump of a ftrace file.
These functions from trace-stat.c have almost the same logic:
 report_plugin()
 report_latency()
 report_errorlog()
A helper function is added, implementing this common logic:
 report_file()

Signed-off-by: Tzvetomir Stoyanov (VMware) <tz.stoyanov@gmail.com>
---
 tracecmd/trace-stat.c | 77 ++++++++++++-------------------------------
 1 file changed, 21 insertions(+), 56 deletions(-)

diff --git a/tracecmd/trace-stat.c b/tracecmd/trace-stat.c
index c5057978..2e3d83c3 100644
--- a/tracecmd/trace-stat.c
+++ b/tracecmd/trace-stat.c
@@ -122,6 +122,24 @@ static char *get_instance_file_content(struct buffer_instance *instance,
 	return str;
 }
 
+static void report_file(struct buffer_instance *instance,
+			char *name, char *def_value, char *description)
+{
+	char *str;
+	char *cont;
+
+	if (!tracefs_file_exists(instance->tracefs, name))
+		return;
+	str = get_instance_file_content(instance, name);
+	if (!str)
+		return;
+	cont = strstrip(str);
+	if (cont[0] && strcmp(cont, def_value))
+		printf("\n%s%s\n", description, cont);
+
+	free(str);
+}
+
 static void report_instances(void)
 {
 	struct dirent *dent;
@@ -166,26 +184,6 @@ out:
 	tracefs_put_tracing_file(path);
 }
 
-static void report_plugin(struct buffer_instance *instance)
-{
-	char *str;
-	char *cont;
-
-	str = get_instance_file_content(instance, "current_tracer");
-	if (!str)
-		return;
-
-	cont = strstrip(str);
-
-	/* We only care if the plugin is something other than nop */
-	if (strcmp(cont, "nop") == 0)
-		goto out;
-
-	printf("\nTracer: %s\n", cont);
- out:
-	free(str);
-}
-
 struct event_iter *trace_event_iter_alloc(const char *path)
 {
 	struct event_iter *iter;
@@ -817,23 +815,6 @@ static void report_cpumask(struct buffer_instance *instance)
 	free(str);
 }
 
-static void report_latency(struct buffer_instance *instance)
-{
-	char *str;
-	char *cont;
-
-	str = get_instance_file_content(instance, "tracing_max_latency");
-	if (!str)
-		return;
-
-	cont = strstrip(str);
-
-	if (strcmp(cont, "0") != 0)
-		printf("\nMax Latency: %s\n", cont);
-
-	free(str);
-}
-
 static void report_probes(struct buffer_instance *instance,
 			  const char *file, const char *string)
 {
@@ -897,22 +878,6 @@ static void report_traceon(struct buffer_instance *instance)
 	free(str);
 }
 
-static void report_errorlog(struct buffer_instance *instance)
-{
-	char *str;
-
-	if (!tracefs_file_exists(instance->tracefs, "error_log"))
-		return;
-	str = get_instance_file_content(instance, "error_log");
-	if (!str)
-		return;
-
-	if (str[0])
-		printf("\nError log:\n%s\n", str);
-
-	free(str);
-}
-
 static void stat_instance(struct buffer_instance *instance)
 {
 	if (instance != &top_instance) {
@@ -923,7 +888,7 @@ static void stat_instance(struct buffer_instance *instance)
 	} else
 		report_instances();
 
-	report_plugin(instance);
+	report_file(instance, "current_tracer", "nop", "Tracer: ");
 	report_events(instance);
 	report_event_filters(instance);
 	report_event_triggers(instance);
@@ -932,11 +897,11 @@ static void stat_instance(struct buffer_instance *instance)
 	report_buffers(instance);
 	report_clock(instance);
 	report_cpumask(instance);
-	report_latency(instance);
+	report_file(instance, "tracing_max_latency", "0", "Max Latency: ");
 	report_kprobes(instance);
 	report_uprobes(instance);
 	report_traceon(instance);
-	report_errorlog(instance);
+	report_file(instance, "error_log", "", "Error log:\n");
 }
 
 void trace_stat (int argc, char **argv)
-- 
2.25.3


  reply	other threads:[~2020-04-21 10:47 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-04-21 10:47 [PATCH 0/2] Display more ftrace configuration by trace-cmd stat Tzvetomir Stoyanov (VMware)
2020-04-21 10:47 ` Tzvetomir Stoyanov (VMware) [this message]
2020-07-02 18:10   ` [PATCH 1/2] trace-cmd: Add helper function to print content of a trace file Steven Rostedt
2020-04-21 10:47 ` [PATCH 2/2] trace-cmd: Print configured filtered PIDs in trace-cmd stat command Tzvetomir Stoyanov (VMware)

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=20200421104713.31762-2-tz.stoyanov@gmail.com \
    --to=tz.stoyanov@gmail.com \
    --cc=linux-trace-devel@vger.kernel.org \
    --cc=rostedt@goodmis.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.