mirror of https://github.com/torvalds/linux.git
When synthesizing build-ids, for build ID mmap2 events, they will be
added for data mmaps if -d/--data is specified. The files opened for
their build IDs may block on the open causing perf to hang during
synthesis. There is some robustness in existing calls to
filename__read_build_id by checking the file path is to a regular
file, which unfortunately fails for symlinks. Rather than adding more
is_regular_file calls, switch filename__read_build_id to take a
"block" argument and specify O_NONBLOCK when this is false. The
existing is_regular_file checking callers and the event synthesis
callers are made to pass false and thereby avoiding the hang.
Fixes:
|
||
|---|---|---|
| .. | ||
| Build | ||
| bench.h | ||
| breakpoint.c | ||
| epoll-ctl.c | ||
| epoll-wait.c | ||
| evlist-open-close.c | ||
| find-bit-bench.c | ||
| futex-hash.c | ||
| futex-lock-pi.c | ||
| futex-requeue.c | ||
| futex-wake-parallel.c | ||
| futex-wake.c | ||
| futex.c | ||
| futex.h | ||
| inject-buildid.c | ||
| kallsyms-parse.c | ||
| mem-functions.c | ||
| mem-memcpy-arch.h | ||
| mem-memcpy-x86-64-asm-def.h | ||
| mem-memcpy-x86-64-asm.S | ||
| mem-memset-arch.h | ||
| mem-memset-x86-64-asm-def.h | ||
| mem-memset-x86-64-asm.S | ||
| numa.c | ||
| pmu-scan.c | ||
| sched-messaging.c | ||
| sched-pipe.c | ||
| sched-seccomp-notify.c | ||
| synthesize.c | ||
| syscall.c | ||
| uprobe.c | ||