All of lore.kernel.org
 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 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.