From: Arnaldo Carvalho de Melo <a...@redhat.com>

Before:

  # perf record -a cycles,instructions,cache-misses
  Workload failed: No such file or directory
  #

After:

  # perf record -a cycles,instructions,cache-misses
  Failed to collect 'cycles' for the 'cycles,instructions,cache-misses' 
workload: No such file or directory
  #

Helps disambiguating other error scenarios:

  # perf record -a -e cycles,instructions,cache-misses bla
  Failed to collect 'cycles,instructions,cache-misses' for the 'bla' workload: 
No such file or directory
  # perf record -a cycles,instructions,cache-misses sleep 1
  Failed to collect 'cycles' for the 'cycles,instructions,cache-misses' 
workload: No such file or directory
  #

When all goes well we're back to the usual:

  # perf record -a -e cycles,instructions,cache-misses sleep 1
  [ perf record: Woken up 3 times to write data ]
  [ perf record: Captured and wrote 3.151 MB perf.data (21242 samples) ]
  #

Cc: Adrian Hunter <adrian.hun...@intel.com>
Cc: Ian Rogers <irog...@google.com>
Cc: Jiri Olsa <jo...@kernel.org>
Cc: Namhyung Kim <namhy...@kernel.org>
Signed-off-by: Arnaldo Carvalho de Melo <a...@redhat.com>
---
 tools/perf/builtin-record.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c
index 35465d1db6dda3ae..5fb9665a2ec27dde 100644
--- a/tools/perf/builtin-record.c
+++ b/tools/perf/builtin-record.c
@@ -1977,9 +1977,13 @@ static int __cmd_record(struct record *rec, int argc, 
const char **argv)
                record__auxtrace_snapshot_exit(rec);
 
        if (forks && workload_exec_errno) {
-               char msg[STRERR_BUFSIZE];
+               char msg[STRERR_BUFSIZE], strevsels[2048];
                const char *emsg = str_error_r(workload_exec_errno, msg, 
sizeof(msg));
-               pr_err("Workload failed: %s\n", emsg);
+
+               evlist__scnprintf_evsels(rec->evlist, sizeof(strevsels), 
strevsels);
+
+               pr_err("Failed to collect '%s' for the '%s' workload: %s\n",
+                       strevsels, argv[0], emsg);
                err = -1;
                goto out_child;
        }
-- 
2.26.2

Reply via email to