aboutsummaryrefslogtreecommitdiffstats
path: root/tools/perf/util/probe-event.c
diff options
context:
space:
mode:
Diffstat (limited to 'tools/perf/util/probe-event.c')
-rw-r--r--tools/perf/util/probe-event.c24
1 files changed, 16 insertions, 8 deletions
diff --git a/tools/perf/util/probe-event.c b/tools/perf/util/probe-event.c
index 919937eb0be2..9dfbed96bf39 100644
--- a/tools/perf/util/probe-event.c
+++ b/tools/perf/util/probe-event.c
@@ -41,6 +41,7 @@
41#include "symbol.h" 41#include "symbol.h"
42#include "thread.h" 42#include "thread.h"
43#include <api/fs/debugfs.h> 43#include <api/fs/debugfs.h>
44#include <api/fs/tracefs.h>
44#include "trace-event.h" /* For __maybe_unused */ 45#include "trace-event.h" /* For __maybe_unused */
45#include "probe-event.h" 46#include "probe-event.h"
46#include "probe-finder.h" 47#include "probe-finder.h"
@@ -1805,7 +1806,7 @@ static void print_open_warning(int err, bool is_kprobe)
1805 " - please rebuild kernel with %s.\n", 1806 " - please rebuild kernel with %s.\n",
1806 is_kprobe ? 'k' : 'u', config); 1807 is_kprobe ? 'k' : 'u', config);
1807 } else if (err == -ENOTSUP) 1808 } else if (err == -ENOTSUP)
1808 pr_warning("Debugfs is not mounted.\n"); 1809 pr_warning("Tracefs or debugfs is not mounted.\n");
1809 else 1810 else
1810 pr_warning("Failed to open %cprobe_events: %s\n", 1811 pr_warning("Failed to open %cprobe_events: %s\n",
1811 is_kprobe ? 'k' : 'u', 1812 is_kprobe ? 'k' : 'u',
@@ -1816,7 +1817,7 @@ static void print_both_open_warning(int kerr, int uerr)
1816{ 1817{
1817 /* Both kprobes and uprobes are disabled, warn it. */ 1818 /* Both kprobes and uprobes are disabled, warn it. */
1818 if (kerr == -ENOTSUP && uerr == -ENOTSUP) 1819 if (kerr == -ENOTSUP && uerr == -ENOTSUP)
1819 pr_warning("Debugfs is not mounted.\n"); 1820 pr_warning("Tracefs or debugfs is not mounted.\n");
1820 else if (kerr == -ENOENT && uerr == -ENOENT) 1821 else if (kerr == -ENOENT && uerr == -ENOENT)
1821 pr_warning("Please rebuild kernel with CONFIG_KPROBE_EVENTS " 1822 pr_warning("Please rebuild kernel with CONFIG_KPROBE_EVENTS "
1822 "or/and CONFIG_UPROBE_EVENTS.\n"); 1823 "or/and CONFIG_UPROBE_EVENTS.\n");
@@ -1833,13 +1834,20 @@ static int open_probe_events(const char *trace_file, bool readwrite)
1833{ 1834{
1834 char buf[PATH_MAX]; 1835 char buf[PATH_MAX];
1835 const char *__debugfs; 1836 const char *__debugfs;
1837 const char *tracing_dir = "";
1836 int ret; 1838 int ret;
1837 1839
1838 __debugfs = debugfs_find_mountpoint(); 1840 __debugfs = tracefs_find_mountpoint();
1839 if (__debugfs == NULL) 1841 if (__debugfs == NULL) {
1840 return -ENOTSUP; 1842 tracing_dir = "tracing/";
1841 1843
1842 ret = e_snprintf(buf, PATH_MAX, "%s/%s", __debugfs, trace_file); 1844 __debugfs = debugfs_find_mountpoint();
1845 if (__debugfs == NULL)
1846 return -ENOTSUP;
1847 }
1848
1849 ret = e_snprintf(buf, PATH_MAX, "%s/%s%s",
1850 __debugfs, tracing_dir, trace_file);
1843 if (ret >= 0) { 1851 if (ret >= 0) {
1844 pr_debug("Opening %s write=%d\n", buf, readwrite); 1852 pr_debug("Opening %s write=%d\n", buf, readwrite);
1845 if (readwrite && !probe_event_dry_run) 1853 if (readwrite && !probe_event_dry_run)
@@ -1855,12 +1863,12 @@ static int open_probe_events(const char *trace_file, bool readwrite)
1855 1863
1856static int open_kprobe_events(bool readwrite) 1864static int open_kprobe_events(bool readwrite)
1857{ 1865{
1858 return open_probe_events("tracing/kprobe_events", readwrite); 1866 return open_probe_events("kprobe_events", readwrite);
1859} 1867}
1860 1868
1861static int open_uprobe_events(bool readwrite) 1869static int open_uprobe_events(bool readwrite)
1862{ 1870{
1863 return open_probe_events("tracing/uprobe_events", readwrite); 1871 return open_probe_events("uprobe_events", readwrite);
1864} 1872}
1865 1873
1866/* Get raw string list of current kprobe_events or uprobe_events */ 1874/* Get raw string list of current kprobe_events or uprobe_events */