perf record: Improve 'Workload failed' message printing events + what was exec'ed
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) ] # Acked-by: Ian Rogers <irogers@google.com> Cc: Adrian Hunter <adrian.hunter@intel.com> Cc: Jiri Olsa <jolsa@kernel.org> Cc: Namhyung Kim <namhyung@kernel.org> Link: http://lore.kernel.org/lkml/20210414131628.2064862-3-acme@kernel.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
parent
9865ea8ab3
commit
3535a6967c
|
@ -1977,9 +1977,13 @@ static int __cmd_record(struct record *rec, int argc, const char **argv)
|
||||||
record__auxtrace_snapshot_exit(rec);
|
record__auxtrace_snapshot_exit(rec);
|
||||||
|
|
||||||
if (forks && workload_exec_errno) {
|
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));
|
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;
|
err = -1;
|
||||||
goto out_child;
|
goto out_child;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue