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:
|
||
|---|---|---|
| .. | ||
| config-fragments | ||
| shell | ||
| workloads | ||
| Build | ||
| api-io.c | ||
| backward-ring-buffer.c | ||
| bitmap.c | ||
| bp_account.c | ||
| bp_signal.c | ||
| bp_signal_overflow.c | ||
| builtin-test.c | ||
| code-reading.c | ||
| cpumap.c | ||
| demangle-java-test.c | ||
| demangle-ocaml-test.c | ||
| demangle-rust-v0-test.c | ||
| dlfilter-test.c | ||
| dso-data.c | ||
| dwarf-unwind.c | ||
| event-times.c | ||
| event_groups.c | ||
| event_update.c | ||
| evsel-roundtrip-name.c | ||
| evsel-tp-sched.c | ||
| expand-cgroup.c | ||
| expr.c | ||
| fdarray.c | ||
| genelf.c | ||
| hists_common.c | ||
| hists_common.h | ||
| hists_cumulate.c | ||
| hists_filter.c | ||
| hists_link.c | ||
| hists_output.c | ||
| hwmon_pmu.c | ||
| is_printable_array.c | ||
| keep-tracking.c | ||
| kmod-path.c | ||
| make | ||
| maps.c | ||
| mem.c | ||
| mem2node.c | ||
| mmap-basic.c | ||
| mmap-thread-lookup.c | ||
| openat-syscall-all-cpus.c | ||
| openat-syscall-tp-fields.c | ||
| openat-syscall.c | ||
| parse-events.c | ||
| parse-metric.c | ||
| parse-no-sample-id-all.c | ||
| pe-file-parsing.c | ||
| pe-file.c | ||
| pe-file.exe | ||
| pe-file.exe.debug | ||
| perf-hooks.c | ||
| perf-record.c | ||
| perf-targz-src-pkg | ||
| perf-time-to-tsc.c | ||
| pfm.c | ||
| pmu-events.c | ||
| pmu.c | ||
| python-use.c | ||
| sample-parsing.c | ||
| sdt.c | ||
| sigtrap.c | ||
| stat.c | ||
| subcmd-help.c | ||
| sw-clock.c | ||
| switch-tracking.c | ||
| symbols.c | ||
| task-exit.c | ||
| tests-scripts.c | ||
| tests-scripts.h | ||
| tests.h | ||
| thread-map.c | ||
| thread-maps-share.c | ||
| time-utils-test.c | ||
| tool_pmu.c | ||
| topology.c | ||
| unit_number__scnprintf.c | ||
| util.c | ||
| vmlinux-kallsyms.c | ||
| wp.c | ||