• Ian Rogers's avatar
    perf srcline: Add a timeout to reading from addr2line · 701677b9
    Ian Rogers authored
    addr2line may fail to send expected values causing perf to wait
    indefinitely. Add a 1 second timeout (twice the timeout for reading from
    /proc/pid/maps) so that such reads don't cause perf to appear to lock
    up.
    
    There are already checks that the file for addr2line contains a debug
    section but this isn't always sufficient. The problem was observed when
    a valid elf file would set the configuration for binutils addr2line,
    then a later read of vmlinux with ELF debug sections would cause a
    failing write/read which would block indefinitely.
    
    As a service to future readers, if the io hits eof or an error, cleanup
    the addr2line process.
    Signed-off-by: default avatarIan Rogers <irogers@google.com>
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Yang Jihong <yangjihong1@huawei.com>
    Link: https://lore.kernel.org/r/20230608061812.3715566-2-irogers@google.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    701677b9
srcline.h 1.86 KB