It was useful for debug to see file descriptors for each event.

Before:

  $ perf stat -vvv -e cycles,cache-misses ls
  ...
  sys_perf_event_open: pid 12146  cpu -1  group_fd -1  flags 0x8
  ...
  sys_perf_event_open: pid 12146  cpu -1  group_fd 3  flags 0x8
  sys_perf_event_open failed, error -13

Now:

  $ perf stat -vvv -e cycles,cache-misses ls
  ...
  sys_perf_event_open: pid 12858  cpu -1  group_fd -1  flags 0x8 = 3
  ...
  sys_perf_event_open: pid 12858  cpu -1  group_fd 3  flags 0x8
  sys_perf_event_open failed, error -13

Link: http://lkml.kernel.org/n/tip-7drsvjamul8bawh8ga1vp...@git.kernel.org
Signed-off-by: Jiri Olsa <jo...@redhat.com>
---
 tools/perf/util/evsel.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/tools/perf/util/evsel.c b/tools/perf/util/evsel.c
index e58a2fbf3b16..b2365a63db45 100644
--- a/tools/perf/util/evsel.c
+++ b/tools/perf/util/evsel.c
@@ -1481,7 +1481,7 @@ static int __perf_evsel__open(struct perf_evsel *evsel, 
struct cpu_map *cpus,
 
                        group_fd = get_group_fd(evsel, cpu, thread);
 retry_open:
-                       pr_debug2("sys_perf_event_open: pid %d  cpu %d  
group_fd %d  flags %#lx\n",
+                       pr_debug2("sys_perf_event_open: pid %d  cpu %d  
group_fd %d  flags %#lx",
                                  pid, cpus->map[cpu], group_fd, flags);
 
                        FD(evsel, cpu, thread) = 
sys_perf_event_open(&evsel->attr,
@@ -1490,11 +1490,13 @@ static int __perf_evsel__open(struct perf_evsel *evsel, 
struct cpu_map *cpus,
                                                                     group_fd, 
flags);
                        if (FD(evsel, cpu, thread) < 0) {
                                err = -errno;
-                               pr_debug2("sys_perf_event_open failed, error 
%d\n",
+                               pr_debug2("\nsys_perf_event_open failed, error 
%d\n",
                                          err);
                                goto try_fallback;
                        }
 
+                       pr_debug2(" = %d\n", FD(evsel, cpu, thread));
+
                        if (evsel->bpf_fd >= 0) {
                                int evt_fd = FD(evsel, cpu, thread);
                                int bpf_fd = evsel->bpf_fd;
-- 
2.7.4

Reply via email to