On 2026-03-08 10:28, Jan Hubicka wrote:
From: Dhruv Chawla <[email protected]>

This is a partial fix for PR124075 which forces perf record to write the
profile out to perf.data. This is required because I noticed on both
aarch64 and x86 that it was writing out the profile to stdout at times,
which would cause profile information to be dropped. This did not fail
in the various create_fdas_for_* targets because they would only try and
access the perf profiles if they existed at their paths.

Further work for this patch is to plumb the PERF_DATA make variable into
the perf record invocation, but that is a stage 1 thing.

Autoprofilebootstrapped and regtested on aarch64-linux-gnu.

Signed-off-by: Dhruv Chawla <[email protected]>

gcc/ChangeLog:
        PR gcov-profile/124075
        * config/aarch64/gcc-auto-profile: Add "-o perf.data" to perf
        record invocation.
        * config/i386/gcc-auto-profile: Likewise.

I have similar change in my tree for some time, so i can do
profiledbootstraps without getting perf data accidentlly streamed into
redirected stdout/stderr.  I do it in the Makefile.ac instead of
perf.data.

Again I would like Andy to have chance to comment, but the change looks
OK to me.

I don't think I've ever seen that issue. You get the perf.data binary
blob in the output? It shouldn't have anything to do with redirection or not.

-o perf.data is default.

the only way I could think of this happening is when the passed command
has an -o /dev/stdout or -o /dev/stderr and maybe perf misparses it somehow (but normally it stops option parsing at the first command name), but then
normally perf uses the last option as the winner, so you should still
see the same output.

If that's the case the correct fix would be to add a "--" before the "$@" to
separate the perf options from others.

If you want to change the output it would probably be better to pass in a name with the PID in it (perf.data.$$) from the caller, this would allow multiple profiles steps in the same directory eventually (but I think the profile process only runs
once per directory atm)

-Andi

Reply via email to