Linux-Trace-Devel Archive on lore.kernel.org
 help / color / Atom feed
* [PATCH] trace-cmd: Use tracefs_tracing_dir() instead of tracefs_find_tracing_dir()
@ 2020-12-21  6:51 Tzvetomir Stoyanov (VMware)
  2020-12-21 15:15 ` Steven Rostedt
  0 siblings, 1 reply; 3+ messages in thread
From: Tzvetomir Stoyanov (VMware) @ 2020-12-21  6:51 UTC (permalink / raw)
  To: rostedt; +Cc: linux-trace-devel

The tracefs_find_tracing_dir() and tracefs_tracing_dir() are
consolidated. All usage of tracefs_find_tracing_dir() are replaced with
calls to tracefs_tracing_dir().

Signed-off-by: Tzvetomir Stoyanov (VMware) <tz.stoyanov@gmail.com>
---
 include/tracefs/tracefs.h           |  3 ---
 lib/trace-cmd/trace-output.c        |  7 +++++--
 lib/tracefs/include/tracefs-local.h |  2 ++
 lib/tracefs/tracefs-instance.c      |  2 +-
 lib/tracefs/tracefs-utils.c         |  8 ++++----
 tracecmd/trace-record.c             | 19 ++++++++++++-------
 utest/tracefs-utest.c               |  9 ---------
 7 files changed, 24 insertions(+), 26 deletions(-)

diff --git a/include/tracefs/tracefs.h b/include/tracefs/tracefs.h
index 8308e3ac..9a99ad6c 100644
--- a/include/tracefs/tracefs.h
+++ b/include/tracefs/tracefs.h
@@ -15,9 +15,6 @@ void tracefs_put_tracing_file(char *name);
 /* The returned string must *not* be freed */
 const char *tracefs_tracing_dir(void);
 
-/* tracefs_find_tracing_dir must be freed */
-char *tracefs_find_tracing_dir(void);
-
 /* ftarce instances */
 struct tracefs_instance;
 
diff --git a/lib/trace-cmd/trace-output.c b/lib/trace-cmd/trace-output.c
index cd7dcec8..de76e3e7 100644
--- a/lib/trace-cmd/trace-output.c
+++ b/lib/trace-cmd/trace-output.c
@@ -240,9 +240,12 @@ static tsize_t copy_file(struct tracecmd_output *handle,
  */
 static const char *find_tracing_dir(struct tracecmd_output *handle)
 {
-	if (!handle->tracing_dir)
-		handle->tracing_dir = tracefs_find_tracing_dir();
+	if (!handle->tracing_dir) {
+		const char *dir = tracefs_tracing_dir();
 
+		if (dir)
+			handle->tracing_dir = strdup(dir);
+	}
 	return handle->tracing_dir;
 }
 
diff --git a/lib/tracefs/include/tracefs-local.h b/lib/tracefs/include/tracefs-local.h
index bdbf89e8..c222fe4f 100644
--- a/lib/tracefs/include/tracefs-local.h
+++ b/lib/tracefs/include/tracefs-local.h
@@ -13,6 +13,8 @@ void warning(const char *fmt, ...);
 int str_read_file(const char *file, char **buffer);
 char *trace_append_file(const char *dir, const char *name);
 
+char *trace_find_tracing_dir(void);
+
 #ifndef ACCESSPERMS
 #define ACCESSPERMS (S_IRWXU|S_IRWXG|S_IRWXO) /* 0777 */
 #endif
diff --git a/lib/tracefs/tracefs-instance.c b/lib/tracefs/tracefs-instance.c
index e9e24ef8..bf3de7cc 100644
--- a/lib/tracefs/tracefs-instance.c
+++ b/lib/tracefs/tracefs-instance.c
@@ -210,7 +210,7 @@ char *tracefs_instance_get_dir(struct tracefs_instance *instance)
 		path = tracefs_get_tracing_file(buf);
 		free(buf);
 	} else
-		path = tracefs_find_tracing_dir();
+		path = trace_find_tracing_dir();
 
 	return path;
 }
diff --git a/lib/tracefs/tracefs-utils.c b/lib/tracefs/tracefs-utils.c
index 8483cb61..acfcacf7 100644
--- a/lib/tracefs/tracefs-utils.c
+++ b/lib/tracefs/tracefs-utils.c
@@ -60,12 +60,12 @@ static int mount_debugfs(void)
 }
 
 /**
- * tracefs_find_tracing_dir - Find tracing directory
+ * trace_find_tracing_dir - Find tracing directory
  *
  * Returns string containing the full path to the system's tracing directory.
  * The string must be freed by free()
  */
-char *tracefs_find_tracing_dir(void)
+char *trace_find_tracing_dir(void)
 {
 	char *debug_str = NULL;
 	char fspath[PATH_MAX+1];
@@ -143,7 +143,7 @@ const char *tracefs_tracing_dir(void)
 	if (tracing_dir)
 		return tracing_dir;
 
-	tracing_dir = tracefs_find_tracing_dir();
+	tracing_dir = trace_find_tracing_dir();
 	return tracing_dir;
 }
 
@@ -166,7 +166,7 @@ char *tracefs_get_tracing_file(const char *name)
 		return NULL;
 
 	if (!tracing) {
-		tracing = tracefs_find_tracing_dir();
+		tracing = trace_find_tracing_dir();
 		if (!tracing)
 			return NULL;
 	}
diff --git a/tracecmd/trace-record.c b/tracecmd/trace-record.c
index e2d1cedf..ade52421 100644
--- a/tracecmd/trace-record.c
+++ b/tracecmd/trace-record.c
@@ -450,13 +450,11 @@ static int __add_all_instances(const char *tracing_dir)
  */
 void add_all_instances(void)
 {
-	char *tracing_dir = tracefs_find_tracing_dir();
+	const char *tracing_dir = tracefs_tracing_dir();
 	if (!tracing_dir)
-		die("malloc");
+		die("can't get the tracing directory");
 
 	__add_all_instances(tracing_dir);
-
-	tracefs_put_tracing_file(tracing_dir);
 }
 
 /**
@@ -3539,10 +3537,17 @@ static int create_recorder(struct buffer_instance *instance, int cpu,
 		}
 		if (fd < 0)
 			die("Failed connecting to client");
-		if (tracefs_instance_get_name(instance->tracefs) && !is_agent(instance))
+		if (tracefs_instance_get_name(instance->tracefs) && !is_agent(instance)) {
 			path = tracefs_instance_get_dir(instance->tracefs);
-		else
-			path = tracefs_find_tracing_dir();
+		} else {
+			const char *dir = tracefs_tracing_dir();
+
+			if (dir)
+				path = strdup(path);
+		}
+		if (!path)
+			die("can't get the tracing directory");
+
 		recorder = tracecmd_create_buffer_recorder_fd(fd, cpu, flags, path);
 		tracefs_put_tracing_file(path);
 	} else {
diff --git a/utest/tracefs-utest.c b/utest/tracefs-utest.c
index 4a622d59..9c9eee06 100644
--- a/utest/tracefs-utest.c
+++ b/utest/tracefs-utest.c
@@ -162,21 +162,12 @@ static void test_trace_file(void)
 	const char *tdir;
 	struct stat st;
 	char *file;
-	char *dir;
-
-	dir = tracefs_find_tracing_dir();
-	CU_TEST(dir != NULL);
-	CU_TEST(stat(dir, &st) == 0);
-	CU_TEST(S_ISDIR(st.st_mode));
 
 	tdir  = tracefs_tracing_dir();
 	CU_TEST(tdir != NULL);
 	CU_TEST(stat(tdir, &st) == 0);
 	CU_TEST(S_ISDIR(st.st_mode));
 
-	CU_TEST(strcmp(dir, tdir) == 0);
-	free(dir);
-
 	file = tracefs_get_tracing_file(NULL);
 	CU_TEST(file == NULL);
 	file = tracefs_get_tracing_file(tmp);
-- 
2.28.0


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] trace-cmd: Use tracefs_tracing_dir() instead of tracefs_find_tracing_dir()
  2020-12-21  6:51 [PATCH] trace-cmd: Use tracefs_tracing_dir() instead of tracefs_find_tracing_dir() Tzvetomir Stoyanov (VMware)
@ 2020-12-21 15:15 ` Steven Rostedt
  2020-12-22  5:06   ` Tzvetomir Stoyanov
  0 siblings, 1 reply; 3+ messages in thread
From: Steven Rostedt @ 2020-12-21 15:15 UTC (permalink / raw)
  To: Tzvetomir Stoyanov (VMware); +Cc: linux-trace-devel

On Mon, 21 Dec 2020 08:51:03 +0200
"Tzvetomir Stoyanov (VMware)" <tz.stoyanov@gmail.com> wrote:

> The tracefs_find_tracing_dir() and tracefs_tracing_dir() are
> consolidated. All usage of tracefs_find_tracing_dir() are replaced with
> calls to tracefs_tracing_dir().
> 

Hmm, I appear to be missing the patch that renames
tracefs_get_tracing_dir() to tracefs_tracing_dir() for trace-cmd.

I have it for libtracefs.

-- Steve

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] trace-cmd: Use tracefs_tracing_dir() instead of tracefs_find_tracing_dir()
  2020-12-21 15:15 ` Steven Rostedt
@ 2020-12-22  5:06   ` Tzvetomir Stoyanov
  0 siblings, 0 replies; 3+ messages in thread
From: Tzvetomir Stoyanov @ 2020-12-22  5:06 UTC (permalink / raw)
  To: Steven Rostedt; +Cc: Linux Trace Devel

On Mon, Dec 21, 2020 at 5:16 PM Steven Rostedt <rostedt@goodmis.org> wrote:
>
> On Mon, 21 Dec 2020 08:51:03 +0200
> "Tzvetomir Stoyanov (VMware)" <tz.stoyanov@gmail.com> wrote:
>
> > The tracefs_find_tracing_dir() and tracefs_tracing_dir() are
> > consolidated. All usage of tracefs_find_tracing_dir() are replaced with
> > calls to tracefs_tracing_dir().
> >
>
> Hmm, I appear to be missing the patch that renames
> tracefs_get_tracing_dir() to tracefs_tracing_dir() for trace-cmd.

I forgot to send it, going to resend both patches in a set.

>
> I have it for libtracefs.
>
> -- Steve



-- 
Tzvetomir (Ceco) Stoyanov
VMware Open Source Technology Center

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, back to index

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-12-21  6:51 [PATCH] trace-cmd: Use tracefs_tracing_dir() instead of tracefs_find_tracing_dir() Tzvetomir Stoyanov (VMware)
2020-12-21 15:15 ` Steven Rostedt
2020-12-22  5:06   ` Tzvetomir Stoyanov

Linux-Trace-Devel Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/linux-trace-devel/0 linux-trace-devel/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 linux-trace-devel linux-trace-devel/ https://lore.kernel.org/linux-trace-devel \
		linux-trace-devel@vger.kernel.org
	public-inbox-index linux-trace-devel

Example config snippet for mirrors

Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.kernel.vger.linux-trace-devel


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git