perf record: Disable debuginfod by default
Fedora 35 sets DEBUGINFOD_URLS by default, which might lead to unexpected stalls in perf record exit path, when we try to cache profiled binaries. # DEBUGINFOD_PROGRESS=1 ./perf record -a ^C[ perf record: Woken up 1 times to write data ] Downloading from https://debuginfod.fedoraproject.org/ 447069 Downloading from https://debuginfod.fedoraproject.org/ 1502175 Downloading \^Z Disabling DEBUGINFOD_URLS by default in perf record and adding debuginfod option and .perfconfig variable support to enable id. Default without debuginfo processing: # perf record -a Using system debuginfod setup: # perf record -a --debuginfod Using custom debuginfd url: # perf record -a --debuginfod='https://evenbetterdebuginfodserver.krava' Adding single perf_debuginfod_setup function and using it also in perf buildid-cache command. Signed-off-by: Jiri Olsa <jolsa@kernel.org> Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com> Cc: Frank Ch. Eigler <fche@redhat.com> Cc: Ian Rogers <irogers@google.com> Cc: Mark Rutland <mark.rutland@arm.com> Cc: Michael Petlan <mpetlan@redhat.com> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Peter Zijlstra <peterz@infradead.org> Link: http://lore.kernel.org/lkml/20211209200425.303561-1-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
committed by
Arnaldo Carvalho de Melo
parent
2eea0b56b0
commit
9bce13ea88
@@ -416,3 +416,18 @@ char *perf_exe(char *buf, int len)
|
||||
}
|
||||
return strcpy(buf, "perf");
|
||||
}
|
||||
|
||||
void perf_debuginfod_setup(struct perf_debuginfod *di)
|
||||
{
|
||||
/*
|
||||
* By default '!di->set' we clear DEBUGINFOD_URLS, so debuginfod
|
||||
* processing is not triggered, otherwise we set it to 'di->urls'
|
||||
* value. If 'di->urls' is "system" we keep DEBUGINFOD_URLS value.
|
||||
*/
|
||||
if (!di->set)
|
||||
setenv("DEBUGINFOD_URLS", "", 1);
|
||||
else if (di->urls && strcmp(di->urls, "system"))
|
||||
setenv("DEBUGINFOD_URLS", di->urls, 1);
|
||||
|
||||
pr_debug("DEBUGINFOD_URLS=%s\n", getenv("DEBUGINFOD_URLS"));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user