Commit 29c52aa2 authored by Xiao Guangrong's avatar Xiao Guangrong Committed by Ingo Molnar

perf tools: Mount debugfs automatically

Mount debugfs filesystem under '/sys/kernel/debug', if it's not
mounted.
Signed-off-by: default avatarXiao 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: default avatarIngo Molnar <mingo@elte.hu>
parent 07b139c8
...@@ -388,7 +388,7 @@ static int run_argv(int *argcp, const char ***argv) ...@@ -388,7 +388,7 @@ static int run_argv(int *argcp, const char ***argv)
/* mini /proc/mounts parser: searching for "^blah /mount/point debugfs" */ /* mini /proc/mounts parser: searching for "^blah /mount/point debugfs" */
static void get_debugfs_mntpt(void) static void get_debugfs_mntpt(void)
{ {
const char *path = debugfs_find_mountpoint(); const char *path = debugfs_mount(NULL);
if (path) if (path)
strncpy(debugfs_mntpt, path, sizeof(debugfs_mntpt)); strncpy(debugfs_mntpt, path, sizeof(debugfs_mntpt));
......
...@@ -106,16 +106,14 @@ int debugfs_valid_entry(const char *path) ...@@ -106,16 +106,14 @@ int debugfs_valid_entry(const char *path)
return 0; 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 */ /* see if it's already mounted */
if (debugfs_find_mountpoint()) { if (debugfs_find_mountpoint()) {
debugfs_premounted = 1; debugfs_premounted = 1;
return 0; return debugfs_mountpoint;
} }
/* if not mounted and no argument */ /* if not mounted and no argument */
...@@ -127,13 +125,13 @@ int debugfs_mount(const char *mountpoint) ...@@ -127,13 +125,13 @@ int debugfs_mount(const char *mountpoint)
mountpoint = "/sys/kernel/debug"; mountpoint = "/sys/kernel/debug";
} }
if (mount(NULL, mountpoint, "debugfs", 0, NULL) < 0)
return NULL;
/* save the mountpoint */ /* save the mountpoint */
strncpy(debugfs_mountpoint, mountpoint, sizeof(debugfs_mountpoint)); strncpy(debugfs_mountpoint, mountpoint, sizeof(debugfs_mountpoint));
/* mount it */ return debugfs_mountpoint;
snprintf(mountcmd, sizeof(mountcmd),
"/bin/mount -t debugfs debugfs %s", mountpoint);
return system(mountcmd);
} }
/* umount the debugfs */ /* umount the debugfs */
......
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
extern const char *debugfs_find_mountpoint(void); extern const char *debugfs_find_mountpoint(void);
extern int debugfs_valid_mountpoint(const char *debugfs); extern int debugfs_valid_mountpoint(const char *debugfs);
extern int debugfs_valid_entry(const char *path); 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_umount(void);
extern int debugfs_write(const char *entry, const char *value); extern int debugfs_write(const char *entry, const char *value);
extern int debugfs_read(const char *entry, char *buffer, size_t size); extern int debugfs_read(const char *entry, char *buffer, size_t size);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment