Skip to content

Commit

Permalink
perf tools: Mount debugfs automatically
Browse files Browse the repository at this point in the history
Mount debugfs filesystem under '/sys/kernel/debug', if it's not
mounted.

Signed-off-by: Xiao Guangrong <xiaoguangrong@cn.fujitsu.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Clark Williams <williams@redhat.com>
Cc: John Kacur <jkacur@redhat.com>
LKML-Reference: <4B387090.7080407@cn.fujitsu.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
  • Loading branch information
Xiao Guangrong authored and Ingo Molnar committed Dec 28, 2009
1 parent 07b139c commit 29c52aa
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 11 deletions.
2 changes: 1 addition & 1 deletion tools/perf/perf.c
Original file line number Diff line number Diff line change
Expand Up @@ -388,7 +388,7 @@ static int run_argv(int *argcp, const char ***argv)
/* mini /proc/mounts parser: searching for "^blah /mount/point debugfs" */
static void get_debugfs_mntpt(void)
{
const char *path = debugfs_find_mountpoint();
const char *path = debugfs_mount(NULL);

if (path)
strncpy(debugfs_mntpt, path, sizeof(debugfs_mntpt));
Expand Down
16 changes: 7 additions & 9 deletions tools/perf/util/debugfs.c
Original file line number Diff line number Diff line change
Expand Up @@ -106,16 +106,14 @@ int debugfs_valid_entry(const char *path)
return 0;
}

/* mount the debugfs somewhere */
/* mount the debugfs somewhere if it's not mounted */

int debugfs_mount(const char *mountpoint)
char *debugfs_mount(const char *mountpoint)
{
char mountcmd[128];

/* see if it's already mounted */
if (debugfs_find_mountpoint()) {
debugfs_premounted = 1;
return 0;
return debugfs_mountpoint;
}

/* if not mounted and no argument */
Expand All @@ -127,13 +125,13 @@ int debugfs_mount(const char *mountpoint)
mountpoint = "/sys/kernel/debug";
}

if (mount(NULL, mountpoint, "debugfs", 0, NULL) < 0)
return NULL;

/* save the mountpoint */
strncpy(debugfs_mountpoint, mountpoint, sizeof(debugfs_mountpoint));

/* mount it */
snprintf(mountcmd, sizeof(mountcmd),
"/bin/mount -t debugfs debugfs %s", mountpoint);
return system(mountcmd);
return debugfs_mountpoint;
}

/* umount the debugfs */
Expand Down
2 changes: 1 addition & 1 deletion tools/perf/util/debugfs.h
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
extern const char *debugfs_find_mountpoint(void);
extern int debugfs_valid_mountpoint(const char *debugfs);
extern int debugfs_valid_entry(const char *path);
extern int debugfs_mount(const char *mountpoint);
extern char *debugfs_mount(const char *mountpoint);
extern int debugfs_umount(void);
extern int debugfs_write(const char *entry, const char *value);
extern int debugfs_read(const char *entry, char *buffer, size_t size);
Expand Down

0 comments on commit 29c52aa

Please sign in to comment.