From: "Masami Hiramatsu (Google)" <mhiramat@kernel.org>
To: Arnaldo Carvalho de Melo <acme@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>,
Ingo Molnar <mingo@redhat.com>,
Mark Rutland <mark.rutland@arm.com>,
Alexander Shishkin <alexander.shishkin@linux.intel.com>,
Jiri Olsa <jolsa@kernel.org>, Namhyung Kim <namhyung@kernel.org>,
linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org,
Masami Hiramatsu <mhiramat@kernel.org>,
Steven Rostedt <rostedt@goodmis.org>
Subject: [PATCH v2 0/3] tools/perf: Fix perf probe crash by clang DWARF5 file
Date: Tue, 1 Nov 2022 22:48:21 +0900 [thread overview]
Message-ID: <166731050151.2100653.8202870942871353491.stgit@devnote3> (raw)
Hi,
Here is the 2nd version of the patches for perf probe which improves the
robustness against clang DWARF5 file.
Since the Clang generates a bit different DWARF5 file, the perf probe
crashes or failes to analyze it. There are actually fragile code against
it, so I fixed it ([1/3]) to avoid crash by SEGV. And make it accepts
Clang's DWARF5 file ([2/3],[3/3]).
Without this series, the perf probe crashes with the DWARF5 file
which generated by clang as below;
$ ./perf probe -k $BIN_PATH/vmlinux -s $SRC_PATH -L vfs_read:10
Segmentation fault
This series fixes it to handle such file correctly;
$ ./perf probe -k $BIN_PATH/vmlinux -s $SRC_PATH -L vfs_read:10
<vfs_read@$SRC_PATH/fs/read_write.c:10>
11 ret = rw_verify_area(READ, file, pos, count);
12 if (ret)
return ret;
On the DWARF5 specification, Sec 2.14, there is
"The value 0 indicates that no source file has been specified."
for DW_AT_decl_file, but clang generated DWARF5 will use the value 0.
This issue is discussed on DWARF std ML;
https://www.mail-archive.com/dwarf-discuss@lists.dwarfstd.org/msg00884.html
And suggested that removing this part from the specification.
http://wiki.dwarfstd.org/index.php?title=DWARF5_Line_Table_File_Numbers
So as far as I understand, this is out of standard at this moment,
but the standard itself has a discussion on this part. And maybe updated
as currently clang does in the next release/revision.
Thank you,
---
Masami Hiramatsu (Google) (3):
tools/perf: Fix to avoid crashing if DW_AT_decl_file is NULL
tools/perf: Fix to use dwarf_attr_integrate for generic attr accessor
tools/perf: Fix to get declared file name from clang DWARF5
tools/perf/util/dwarf-aux.c | 58 ++++++++++++++++++++++++++++------------
tools/perf/util/dwarf-aux.h | 3 ++
tools/perf/util/probe-finder.c | 37 +++++++++++++++++---------
3 files changed, 68 insertions(+), 30 deletions(-)
--
Masami Hiramatsu (Google) <mhiramat@kernel.org>
next reply other threads:[~2022-11-01 13:48 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-11-01 13:48 Masami Hiramatsu (Google) [this message]
2022-11-01 13:48 ` [PATCH v2 1/3] tools/perf: Fix to avoid crashing if DW_AT_decl_file is NULL Masami Hiramatsu (Google)
2022-11-01 13:48 ` [PATCH v2 2/3] tools/perf: Fix to use dwarf_attr_integrate for generic attr accessor Masami Hiramatsu (Google)
2022-11-01 13:48 ` [PATCH v2 3/3] tools/perf: Fix to get declared file name from clang DWARF5 Masami Hiramatsu (Google)
2023-06-09 12:21 ` Georg Müller
2023-06-15 11:42 ` Linux regression tracking #adding (Thorsten Leemhuis)
2023-08-29 13:41 ` Linux regression tracking #update (Thorsten Leemhuis)
2023-06-15 14:02 ` Georg Müller
2023-06-15 20:01 ` [PATCH] perf probe: read DWARF files from the correct CU Georg Müller
2023-06-22 22:04 ` Georg Müller
2023-07-11 12:57 ` Arnaldo Carvalho de Melo
2023-07-11 13:20 ` Masami Hiramatsu
2023-07-11 14:41 ` Arnaldo Carvalho de Melo
2023-06-28 8:23 ` [PATCH v2 0/2] perf probe: fix regression introduced by switch to die_get_decl_file Georg Müller
2023-06-28 8:23 ` [PATCH v2 1/2] perf probe: add test for " Georg Müller
2023-07-27 17:45 ` Ian Rogers
2023-07-28 14:41 ` Georg Müller
2023-06-28 8:23 ` [PATCH v2 2/2] perf probe: read DWARF files from the correct CU Georg Müller
2023-06-28 8:41 ` [PATCH v2 0/2] perf probe: fix regression introduced by switch to die_get_decl_file Linux regression tracking (Thorsten Leemhuis)
2022-11-02 0:03 ` [PATCH v2 0/3] tools/perf: Fix perf probe crash by clang DWARF5 file Namhyung Kim
2022-11-03 12:31 ` Arnaldo Carvalho de Melo
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=166731050151.2100653.8202870942871353491.stgit@devnote3 \
--to=mhiramat@kernel.org \
--cc=acme@kernel.org \
--cc=alexander.shishkin@linux.intel.com \
--cc=jolsa@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-perf-users@vger.kernel.org \
--cc=mark.rutland@arm.com \
--cc=mingo@redhat.com \
--cc=namhyung@kernel.org \
--cc=peterz@infradead.org \
--cc=rostedt@goodmis.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.