Re: [RFC] perf record: Disable debuginfod by default

From: Peter Zijlstra
Date: Fri Dec 10 2021 - 03:04:42 EST


On Thu, Dec 09, 2021 at 09:04:25PM +0100, Jiri Olsa wrote:
> hi,
> after migrating to fedora 35 I found perf record hanging on exit
> and it's because fedora 35 sets DEBUGINFOD_URLS that triggers
> debuginfod query which might take long time to process.
>
> I discussed this briefly with Frank and I'm sending the change
> to disable debuginfod by default in perf record.
>
> Frank had other idea we could discuss here to fork or just spawn
> "/usr/bin/debuginfod-find ...." into background after perf record.
>
> Perhaps there are other ways as well, hence this is RFC ;-)
>
> thanks,
> jirka
>
>
> ---
> Fedora 35 sets by default DEBUGINFOD_URLS, 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.

I'm still running with --no-buildid --no-buildid-cache or something like
that by default. As long as that remains working I'm good.