forked from Minki/linux
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: Jiri 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.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
parent
0b5a7935f3
commit
9f44f0cc1c
@ -34,6 +34,7 @@ bool test_attr__enabled;
|
||||
bool perf_host = true;
|
||||
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";
|
||||
|
||||
void event_attr_init(struct perf_event_attr *attr)
|
||||
@ -391,6 +392,8 @@ void set_term_quiet_input(struct termios *old)
|
||||
|
||||
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",
|
||||
mountpoint, tracing, "events");
|
||||
}
|
||||
@ -440,62 +443,11 @@ void perf_debugfs_set_path(const char *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)
|
||||
{
|
||||
const char *tracing;
|
||||
char *file;
|
||||
|
||||
tracing = find_tracing_dir();
|
||||
if (!tracing)
|
||||
return NULL;
|
||||
|
||||
if (asprintf(&file, "%s/%s", tracing, name) < 0)
|
||||
if (asprintf(&file, "%s/%s", tracing_path, name) < 0)
|
||||
return NULL;
|
||||
|
||||
return file;
|
||||
|
@ -83,10 +83,10 @@
|
||||
extern const char *graph_line;
|
||||
extern const char *graph_dotted_line;
|
||||
extern char buildid_dir[];
|
||||
extern char tracing_path[];
|
||||
extern char tracing_events_path[];
|
||||
extern void perf_debugfs_set_path(const char *mountpoint);
|
||||
const char *perf_debugfs_mount(const char *mountpoint);
|
||||
const char *find_tracing_dir(void);
|
||||
char *get_tracing_file(const char *name);
|
||||
void put_tracing_file(char *file);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user