提交 9f44f0cc 编写于 作者: J Jiri Olsa 提交者: Arnaldo Carvalho de Melo

perf tools: Add tracing_path and remove unneeded functions

There's no need for find_tracing_dir, because perf already searches for
debugfs/tracefs mount on start and populate tracing_events_path.

Adding tracing_path to carry tracing dir string to be used in
get_tracing_file instead of calling find_tracing_dir.
Signed-off-by: NJiri Olsa <jolsa@kernel.org>
Cc: Raphael Beamonte <raphael.beamonte@gmail.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Matt Fleming <matt@codeblueprint.co.uk>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/1440596813-12844-3-git-send-email-jolsa@kernel.orgSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
上级 0b5a7935
...@@ -34,6 +34,7 @@ bool test_attr__enabled; ...@@ -34,6 +34,7 @@ bool test_attr__enabled;
bool perf_host = true; bool perf_host = true;
bool perf_guest = false; bool perf_guest = false;
char tracing_path[PATH_MAX + 1] = "/sys/kernel/debug/tracing";
char tracing_events_path[PATH_MAX + 1] = "/sys/kernel/debug/tracing/events"; char tracing_events_path[PATH_MAX + 1] = "/sys/kernel/debug/tracing/events";
void event_attr_init(struct perf_event_attr *attr) void event_attr_init(struct perf_event_attr *attr)
...@@ -391,6 +392,8 @@ void set_term_quiet_input(struct termios *old) ...@@ -391,6 +392,8 @@ void set_term_quiet_input(struct termios *old)
static void set_tracing_events_path(const char *tracing, const char *mountpoint) static void set_tracing_events_path(const char *tracing, const char *mountpoint)
{ {
snprintf(tracing_path, sizeof(tracing_path), "%s/%s",
mountpoint, tracing);
snprintf(tracing_events_path, sizeof(tracing_events_path), "%s/%s%s", snprintf(tracing_events_path, sizeof(tracing_events_path), "%s/%s%s",
mountpoint, tracing, "events"); mountpoint, tracing, "events");
} }
...@@ -440,62 +443,11 @@ void perf_debugfs_set_path(const char *mntpt) ...@@ -440,62 +443,11 @@ void perf_debugfs_set_path(const char *mntpt)
set_tracing_events_path("tracing/", mntpt); set_tracing_events_path("tracing/", mntpt);
} }
static const char *find_tracefs(void)
{
const char *path = __perf_tracefs_mount(NULL);
return path;
}
static const char *find_debugfs(void)
{
const char *path = __perf_debugfs_mount(NULL);
if (!path)
fprintf(stderr, "Your kernel does not support the debugfs filesystem");
return path;
}
/*
* Finds the path to the debugfs/tracing
* Allocates the string and stores it.
*/
const char *find_tracing_dir(void)
{
const char *tracing_dir = "";
static char *tracing;
static int tracing_found;
const char *debugfs;
if (tracing_found)
return tracing;
debugfs = find_tracefs();
if (!debugfs) {
tracing_dir = "/tracing";
debugfs = find_debugfs();
if (!debugfs)
return NULL;
}
if (asprintf(&tracing, "%s%s", debugfs, tracing_dir) < 0)
return NULL;
tracing_found = 1;
return tracing;
}
char *get_tracing_file(const char *name) char *get_tracing_file(const char *name)
{ {
const char *tracing;
char *file; char *file;
tracing = find_tracing_dir(); if (asprintf(&file, "%s/%s", tracing_path, name) < 0)
if (!tracing)
return NULL;
if (asprintf(&file, "%s/%s", tracing, name) < 0)
return NULL; return NULL;
return file; return file;
......
...@@ -83,10 +83,10 @@ ...@@ -83,10 +83,10 @@
extern const char *graph_line; extern const char *graph_line;
extern const char *graph_dotted_line; extern const char *graph_dotted_line;
extern char buildid_dir[]; extern char buildid_dir[];
extern char tracing_path[];
extern char tracing_events_path[]; extern char tracing_events_path[];
extern void perf_debugfs_set_path(const char *mountpoint); extern void perf_debugfs_set_path(const char *mountpoint);
const char *perf_debugfs_mount(const char *mountpoint); const char *perf_debugfs_mount(const char *mountpoint);
const char *find_tracing_dir(void);
char *get_tracing_file(const char *name); char *get_tracing_file(const char *name);
void put_tracing_file(char *file); void put_tracing_file(char *file);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册