linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/2] faddr2line fixes
@ 2022-07-21 18:01 Josh Poimboeuf
  2022-07-21 18:01 ` [PATCH 1/2] scripts/faddr2line: Fix vmlinux detection on arm64 Josh Poimboeuf
  2022-07-21 18:01 ` [PATCH 2/2] scripts/faddr2line: Add CONFIG_DEBUG_INFO check Josh Poimboeuf
  0 siblings, 2 replies; 6+ messages in thread
From: Josh Poimboeuf @ 2022-07-21 18:01 UTC (permalink / raw)
  To: x86; +Cc: linux-kernel, Peter Zijlstra, John Garry

Fix faddr2line on arm64, and improve the error message for missing
CONFIG_DEBUG_INFO.

Josh Poimboeuf (2):
  scripts/faddr2line: Fix vmlinux detection on arm64
  scripts/faddr2line: Add CONFIG_DEBUG_INFO check

 scripts/faddr2line | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

-- 
2.36.1


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH 1/2] scripts/faddr2line: Fix vmlinux detection on arm64
  2022-07-21 18:01 [PATCH 0/2] faddr2line fixes Josh Poimboeuf
@ 2022-07-21 18:01 ` Josh Poimboeuf
  2022-08-02 20:11   ` [tip: perf/urgent] " tip-bot2 for Josh Poimboeuf
  2022-07-21 18:01 ` [PATCH 2/2] scripts/faddr2line: Add CONFIG_DEBUG_INFO check Josh Poimboeuf
  1 sibling, 1 reply; 6+ messages in thread
From: Josh Poimboeuf @ 2022-07-21 18:01 UTC (permalink / raw)
  To: x86; +Cc: linux-kernel, Peter Zijlstra, John Garry

Since commit dcea997beed6 ("faddr2line: Fix overlapping text section
failures, the sequel"), faddr2line is completely broken on arm64.

For some reason, on arm64, the vmlinux ELF object file type is ET_DYN
rather than ET_EXEC.  Check for both when determining whether the object
is vmlinux.

Modules and vmlinux.o have type ET_REL on all arches.

Fixes: dcea997beed6 ("faddr2line: Fix overlapping text section failures, the sequel")
Reported-by: John Garry <john.garry@huawei.com>
Tested-by: John Garry <john.garry@huawei.com>
Signed-off-by: Josh Poimboeuf <jpoimboe@kernel.org>
---
 scripts/faddr2line | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/scripts/faddr2line b/scripts/faddr2line
index 94ed98dd899f..57099687e5e1 100755
--- a/scripts/faddr2line
+++ b/scripts/faddr2line
@@ -112,7 +112,9 @@ __faddr2line() {
 	# section offsets.
 	local file_type=$(${READELF} --file-header $objfile |
 		${AWK} '$1 == "Type:" { print $2; exit }')
-	[[ $file_type = "EXEC" ]] && is_vmlinux=1
+	if [[ $file_type = "EXEC" ]] || [[ $file_type == "DYN" ]]; then
+		is_vmlinux=1
+	fi
 
 	# Go through each of the object's symbols which match the func name.
 	# In rare cases there might be duplicates, in which case we print all
-- 
2.36.1


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH 2/2] scripts/faddr2line: Add CONFIG_DEBUG_INFO check
  2022-07-21 18:01 [PATCH 0/2] faddr2line fixes Josh Poimboeuf
  2022-07-21 18:01 ` [PATCH 1/2] scripts/faddr2line: Fix vmlinux detection on arm64 Josh Poimboeuf
@ 2022-07-21 18:01 ` Josh Poimboeuf
  2022-07-22  8:41   ` John Garry
  2022-08-02 20:11   ` [tip: perf/urgent] " tip-bot2 for Josh Poimboeuf
  1 sibling, 2 replies; 6+ messages in thread
From: Josh Poimboeuf @ 2022-07-21 18:01 UTC (permalink / raw)
  To: x86; +Cc: linux-kernel, Peter Zijlstra, John Garry

Otherwise without DWARF it spits out gibberish and gives no indication
of what the problem is.

Suggested-by: John Garry <john.garry@huawei.com>
Signed-off-by: Josh Poimboeuf <jpoimboe@kernel.org>
---
 scripts/faddr2line | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/scripts/faddr2line b/scripts/faddr2line
index 57099687e5e1..5514c23f45c2 100755
--- a/scripts/faddr2line
+++ b/scripts/faddr2line
@@ -61,6 +61,7 @@ die() {
 READELF="${CROSS_COMPILE:-}readelf"
 ADDR2LINE="${CROSS_COMPILE:-}addr2line"
 AWK="awk"
+GREP="grep"
 
 command -v ${AWK} >/dev/null 2>&1 || die "${AWK} isn't installed"
 command -v ${READELF} >/dev/null 2>&1 || die "${READELF} isn't installed"
@@ -271,6 +272,8 @@ LIST=0
 [[ ! -f $objfile ]] && die "can't find objfile $objfile"
 shift
 
+${READELF} --section-headers --wide $objfile | ${GREP} -q '\.debug_info' || die "CONFIG_DEBUG_INFO not enabled"
+
 DIR_PREFIX=supercalifragilisticexpialidocious
 find_dir_prefix $objfile
 
-- 
2.36.1


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH 2/2] scripts/faddr2line: Add CONFIG_DEBUG_INFO check
  2022-07-21 18:01 ` [PATCH 2/2] scripts/faddr2line: Add CONFIG_DEBUG_INFO check Josh Poimboeuf
@ 2022-07-22  8:41   ` John Garry
  2022-08-02 20:11   ` [tip: perf/urgent] " tip-bot2 for Josh Poimboeuf
  1 sibling, 0 replies; 6+ messages in thread
From: John Garry @ 2022-07-22  8:41 UTC (permalink / raw)
  To: Josh Poimboeuf, x86; +Cc: linux-kernel, Peter Zijlstra

On 21/07/2022 19:01, Josh Poimboeuf wrote:
> Otherwise without DWARF it spits out gibberish and gives no indication
> of what the problem is.
> 
> Suggested-by: John Garry <john.garry@huawei.com>
> Signed-off-by: Josh Poimboeuf <jpoimboe@kernel.org>

Seems to work fine, thanks

Tested-by: John Garry <john.garry@huawei.com>

> ---
>   scripts/faddr2line | 3 +++
>   1 file changed, 3 insertions(+)
> 
> diff --git a/scripts/faddr2line b/scripts/faddr2line
> index 57099687e5e1..5514c23f45c2 100755
> --- a/scripts/faddr2line
> +++ b/scripts/faddr2line
> @@ -61,6 +61,7 @@ die() {
>   READELF="${CROSS_COMPILE:-}readelf"
>   ADDR2LINE="${CROSS_COMPILE:-}addr2line"
>   AWK="awk"
> +GREP="grep"
>   
>   command -v ${AWK} >/dev/null 2>&1 || die "${AWK} isn't installed"
>   command -v ${READELF} >/dev/null 2>&1 || die "${READELF} isn't installed"
> @@ -271,6 +272,8 @@ LIST=0
>   [[ ! -f $objfile ]] && die "can't find objfile $objfile"
>   shift
>   
> +${READELF} --section-headers --wide $objfile | ${GREP} -q '\.debug_info' || die "CONFIG_DEBUG_INFO not enabled"
> +
>   DIR_PREFIX=supercalifragilisticexpialidocious
>   find_dir_prefix $objfile
>   


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [tip: perf/urgent] scripts/faddr2line: Add CONFIG_DEBUG_INFO check
  2022-07-21 18:01 ` [PATCH 2/2] scripts/faddr2line: Add CONFIG_DEBUG_INFO check Josh Poimboeuf
  2022-07-22  8:41   ` John Garry
@ 2022-08-02 20:11   ` tip-bot2 for Josh Poimboeuf
  1 sibling, 0 replies; 6+ messages in thread
From: tip-bot2 for Josh Poimboeuf @ 2022-08-02 20:11 UTC (permalink / raw)
  To: linux-tip-commits
  Cc: John Garry, Josh Poimboeuf, Ingo Molnar, x86, linux-kernel

The following commit has been merged into the perf/urgent branch of tip:

Commit-ID:     a41a2e2e34a907bd8979a53c58f44287630616e8
Gitweb:        https://git.kernel.org/tip/a41a2e2e34a907bd8979a53c58f44287630616e8
Author:        Josh Poimboeuf <jpoimboe@kernel.org>
AuthorDate:    Thu, 21 Jul 2022 11:01:24 -07:00
Committer:     Ingo Molnar <mingo@kernel.org>
CommitterDate: Tue, 02 Aug 2022 22:08:17 +02:00

scripts/faddr2line: Add CONFIG_DEBUG_INFO check

Otherwise without DWARF it spits out gibberish and gives no indication
of what the problem is.

Suggested-by: John Garry <john.garry@huawei.com>
Signed-off-by: Josh Poimboeuf <jpoimboe@kernel.org>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Tested-by: John Garry <john.garry@huawei.com>
Link: https://lore.kernel.org/r/ffa7734c929445caa374bf9e68078300174f09b4.1658426357.git.jpoimboe@kernel.org
---
 scripts/faddr2line | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/scripts/faddr2line b/scripts/faddr2line
index 5709968..5514c23 100755
--- a/scripts/faddr2line
+++ b/scripts/faddr2line
@@ -61,6 +61,7 @@ die() {
 READELF="${CROSS_COMPILE:-}readelf"
 ADDR2LINE="${CROSS_COMPILE:-}addr2line"
 AWK="awk"
+GREP="grep"
 
 command -v ${AWK} >/dev/null 2>&1 || die "${AWK} isn't installed"
 command -v ${READELF} >/dev/null 2>&1 || die "${READELF} isn't installed"
@@ -271,6 +272,8 @@ LIST=0
 [[ ! -f $objfile ]] && die "can't find objfile $objfile"
 shift
 
+${READELF} --section-headers --wide $objfile | ${GREP} -q '\.debug_info' || die "CONFIG_DEBUG_INFO not enabled"
+
 DIR_PREFIX=supercalifragilisticexpialidocious
 find_dir_prefix $objfile
 

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [tip: perf/urgent] scripts/faddr2line: Fix vmlinux detection on arm64
  2022-07-21 18:01 ` [PATCH 1/2] scripts/faddr2line: Fix vmlinux detection on arm64 Josh Poimboeuf
@ 2022-08-02 20:11   ` tip-bot2 for Josh Poimboeuf
  0 siblings, 0 replies; 6+ messages in thread
From: tip-bot2 for Josh Poimboeuf @ 2022-08-02 20:11 UTC (permalink / raw)
  To: linux-tip-commits
  Cc: John Garry, Josh Poimboeuf, Ingo Molnar, x86, linux-kernel

The following commit has been merged into the perf/urgent branch of tip:

Commit-ID:     b6a5068854cfe372da7dee3224dcf023ed5b00cb
Gitweb:        https://git.kernel.org/tip/b6a5068854cfe372da7dee3224dcf023ed5b00cb
Author:        Josh Poimboeuf <jpoimboe@kernel.org>
AuthorDate:    Thu, 21 Jul 2022 11:01:23 -07:00
Committer:     Ingo Molnar <mingo@kernel.org>
CommitterDate: Tue, 02 Aug 2022 22:08:16 +02:00

scripts/faddr2line: Fix vmlinux detection on arm64

Since commit dcea997beed6 ("faddr2line: Fix overlapping text section
failures, the sequel"), faddr2line is completely broken on arm64.

For some reason, on arm64, the vmlinux ELF object file type is ET_DYN
rather than ET_EXEC.  Check for both when determining whether the object
is vmlinux.

Modules and vmlinux.o have type ET_REL on all arches.

Fixes: dcea997beed6 ("faddr2line: Fix overlapping text section failures, the sequel")
Reported-by: John Garry <john.garry@huawei.com>
Signed-off-by: Josh Poimboeuf <jpoimboe@kernel.org>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Tested-by: John Garry <john.garry@huawei.com>
Link: https://lore.kernel.org/r/dad1999737471b06d6188ce4cdb11329aa41682c.1658426357.git.jpoimboe@kernel.org
---
 scripts/faddr2line | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/scripts/faddr2line b/scripts/faddr2line
index 94ed98d..5709968 100755
--- a/scripts/faddr2line
+++ b/scripts/faddr2line
@@ -112,7 +112,9 @@ __faddr2line() {
 	# section offsets.
 	local file_type=$(${READELF} --file-header $objfile |
 		${AWK} '$1 == "Type:" { print $2; exit }')
-	[[ $file_type = "EXEC" ]] && is_vmlinux=1
+	if [[ $file_type = "EXEC" ]] || [[ $file_type == "DYN" ]]; then
+		is_vmlinux=1
+	fi
 
 	# Go through each of the object's symbols which match the func name.
 	# In rare cases there might be duplicates, in which case we print all

^ permalink raw reply related	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2022-08-02 20:11 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-07-21 18:01 [PATCH 0/2] faddr2line fixes Josh Poimboeuf
2022-07-21 18:01 ` [PATCH 1/2] scripts/faddr2line: Fix vmlinux detection on arm64 Josh Poimboeuf
2022-08-02 20:11   ` [tip: perf/urgent] " tip-bot2 for Josh Poimboeuf
2022-07-21 18:01 ` [PATCH 2/2] scripts/faddr2line: Add CONFIG_DEBUG_INFO check Josh Poimboeuf
2022-07-22  8:41   ` John Garry
2022-08-02 20:11   ` [tip: perf/urgent] " tip-bot2 for Josh Poimboeuf

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).