perf tools: Mount debugfs automatically

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>
This commit is contained in:
Xiao Guangrong 2009-12-28 16:47:12 +08:00 committed by Ingo Molnar
parent 07b139c8c8
commit 29c52aa230
3 changed files with 9 additions and 11 deletions

View File

@ -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));

View File

@ -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 */
@ -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 */

View File

@ -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);