2022-07-08 14:51:32

by John Garry

[permalink] [raw]
Subject: faddr2line issue

Hi Josh,

I am finding that for a few mainline kernel releases that faddr2line
does seem to be working:

./scripts/faddr2line vmlinux sas_discover_domain+0x4dc/0x560
sas_discover_domain+0x4dc/0x560:
fs mm ??:0

This is on my arm64 system. I have not tried another arch. Are there any
known issues?

Maybe I'm using it incorrectly... I can go back and see when this
stopped working for me.

Cheers,
John


2022-07-14 10:23:44

by John Garry

[permalink] [raw]
Subject: Re: faddr2line issue

On 08/07/2022 15:47, John Garry wrote:

+

JFYI, This issue is caused by CONFIG_DEBUG_INFO now being default off in
my .config from commit f9b3cd245784 ("Kconfig.debug: make DEBUG_INFO
selectable from a choice").

By enabling that config faddr2line now looks ok again.

BTW, Could we add a check for any kernel dependency in this tool?

Thanks,
John

> Hi Josh,
>
> I am finding that for a few mainline kernel releases that faddr2line
> does seem to be working:
>
> ./scripts/faddr2line vmlinux  sas_discover_domain+0x4dc/0x560
> sas_discover_domain+0x4dc/0x560:
> fs mm ??:0
>
> This is on my arm64 system. I have not tried another arch. Are there any
> known issues?
>
> Maybe I'm using it incorrectly... I can go back and see when this
> stopped working for me.
>
> Cheers,
> John

2022-07-14 17:21:47

by Josh Poimboeuf

[permalink] [raw]
Subject: Re: faddr2line issue

On Thu, Jul 14, 2022 at 10:57:51AM +0100, John Garry wrote:
> On 08/07/2022 15:47, John Garry wrote:
>
> +
>
> JFYI, This issue is caused by CONFIG_DEBUG_INFO now being default off in my
> .config from commit f9b3cd245784 ("Kconfig.debug: make DEBUG_INFO selectable
> from a choice").
>
> By enabling that config faddr2line now looks ok again.
>
> BTW, Could we add a check for any kernel dependency in this tool?

Hi John,

The script doesn't know how to reliably find the .config file, but it
should be able to check for missing DWARF in the binary itself.

--
Josh

2022-07-19 15:33:25

by John Garry

[permalink] [raw]
Subject: Re: faddr2line issue

On 14/07/2022 17:41, Josh Poimboeuf wrote:
> On Thu, Jul 14, 2022 at 10:57:51AM +0100, John Garry wrote:
>> On 08/07/2022 15:47, John Garry wrote:
>>
>> +
>>
>> JFYI, This issue is caused by CONFIG_DEBUG_INFO now being default off in my
>> .config from commit f9b3cd245784 ("Kconfig.debug: make DEBUG_INFO selectable
>> from a choice").
>>
>> By enabling that config faddr2line now looks ok again.
>>
>> BTW, Could we add a check for any kernel dependency in this tool?
> Hi John,
>
> The script doesn't know how to reliably find the .config file, but it
> should be able to check for missing DWARF in the binary itself.

Hi Josh,

So adding config DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT to v5.19-rc2 got it
working again for me on arm64. However commit dcea997beed6 ("faddr2line:
Fix overlapping text section failures, the sequel") seems to be broken
for me, below - this first appeared in rc3. Any idea what the issue
could be?

$./faddr.sh hisi_sas_sata_done+0x8/0x38
hisi_sas_sata_done+0x8/0x38:
fs mm ??:0

Thanks,
John

2022-07-20 00:16:13

by Josh Poimboeuf

[permalink] [raw]
Subject: Re: faddr2line issue

On Tue, Jul 19, 2022 at 04:24:42PM +0100, John Garry wrote:
> On 14/07/2022 17:41, Josh Poimboeuf wrote:
> > On Thu, Jul 14, 2022 at 10:57:51AM +0100, John Garry wrote:
> > > On 08/07/2022 15:47, John Garry wrote:
> > >
> > > +
> > >
> > > JFYI, This issue is caused by CONFIG_DEBUG_INFO now being default off in my
> > > .config from commit f9b3cd245784 ("Kconfig.debug: make DEBUG_INFO selectable
> > > from a choice").
> > >
> > > By enabling that config faddr2line now looks ok again.
> > >
> > > BTW, Could we add a check for any kernel dependency in this tool?
> > Hi John,
> >
> > The script doesn't know how to reliably find the .config file, but it
> > should be able to check for missing DWARF in the binary itself.
>
> Hi Josh,
>
> So adding config DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT to v5.19-rc2 got it
> working again for me on arm64. However commit dcea997beed6 ("faddr2line: Fix
> overlapping text section failures, the sequel") seems to be broken for me,
> below - this first appeared in rc3. Any idea what the issue could be?
>
> $./faddr.sh hisi_sas_sata_done+0x8/0x38
> hisi_sas_sata_done+0x8/0x38:
> fs mm ??:0

Hm, what does faddr.sh do? Does addr2line also fail?

Can you run

bash -x scripts/faddr2line <vmlinux or .ko file> hisi_sas_sata_done+0x8/0x38

and share the output?

--
Josh

2022-07-20 08:51:23

by John Garry

[permalink] [raw]
Subject: Re: faddr2line issue

On 20/07/2022 01:06, Josh Poimboeuf wrote:
>> So adding config DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT to v5.19-rc2 got it
>> working again for me on arm64. However commit dcea997beed6 ("faddr2line: Fix
>> overlapping text section failures, the sequel") seems to be broken for me,
>> below - this first appeared in rc3. Any idea what the issue could be?
>>
>> $./faddr.sh hisi_sas_sata_done+0x8/0x38
>> hisi_sas_sata_done+0x8/0x38:
>> fs mm ??:0
> Hm, what does faddr.sh do?

ah, it's just a wrapper to call scripts/faddr2line with vmlinux and $1
(being hisi_sas_sata_done+0x8/0x38, above) args

> Does addr2line also fail?

faddr2line fails, as below.

>
> Can you run
>
> bash -x scripts/faddr2line <vmlinux or .ko file> hisi_sas_sata_done+0x8/0x38
>
> and share the output?

on rc3 we get:

https://raw.githubusercontent.com/hisilicon/kernel-dev/private-topic-sas-5.19-faddr2line-linux-rc3/before2

With dcea997beed6 reverted on rc3:

https://raw.githubusercontent.com/hisilicon/kernel-dev/private-topic-sas-5.19-faddr2line-linux-rc3/after2

This is my branch is you want to see what I have:
https://github.com/hisilicon/kernel-dev/commits/private-topic-sas-5.19-faddr2line-linux-rc3

Thanks,
John

2022-07-20 23:48:08

by Josh Poimboeuf

[permalink] [raw]
Subject: Re: faddr2line issue

On Wed, Jul 20, 2022 at 09:39:42AM +0100, John Garry wrote:
> On 20/07/2022 01:06, Josh Poimboeuf wrote:
> > > So adding config DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT to v5.19-rc2 got it
> > > working again for me on arm64. However commit dcea997beed6 ("faddr2line: Fix
> > > overlapping text section failures, the sequel") seems to be broken for me,
> > > below - this first appeared in rc3. Any idea what the issue could be?
> > >
> > > $./faddr.sh hisi_sas_sata_done+0x8/0x38
> > > hisi_sas_sata_done+0x8/0x38:
> > > fs mm ??:0
> > Hm, what does faddr.sh do?
>
> ah, it's just a wrapper to call scripts/faddr2line with vmlinux and $1
> (being hisi_sas_sata_done+0x8/0x38, above) args
>
> > Does addr2line also fail?
>
> faddr2line fails, as below.
>
> >
> > Can you run
> >
> > bash -x scripts/faddr2line <vmlinux or .ko file> hisi_sas_sata_done+0x8/0x38
> >
> > and share the output?
>
> on rc3 we get:
>
> https://raw.githubusercontent.com/hisilicon/kernel-dev/private-topic-sas-5.19-faddr2line-linux-rc3/before2

Does this fix it?

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

2022-07-21 15:54:12

by John Garry

[permalink] [raw]
Subject: Re: faddr2line issue

On 21/07/2022 00:32, Josh Poimboeuf wrote:
> On Wed, Jul 20, 2022 at 09:39:42AM +0100, John Garry wrote:
>> On 20/07/2022 01:06, Josh Poimboeuf wrote:
>>>> So adding config DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT to v5.19-rc2 got it
>>>> working again for me on arm64. However commit dcea997beed6 ("faddr2line: Fix
>>>> overlapping text section failures, the sequel") seems to be broken for me,
>>>> below - this first appeared in rc3. Any idea what the issue could be?
>>>>
>>>> $./faddr.sh hisi_sas_sata_done+0x8/0x38
>>>> hisi_sas_sata_done+0x8/0x38:
>>>> fs mm ??:0
>>> Hm, what does faddr.sh do?
>>
>> ah, it's just a wrapper to call scripts/faddr2line with vmlinux and $1
>> (being hisi_sas_sata_done+0x8/0x38, above) args
>>
>>> Does addr2line also fail?
>>
>> faddr2line fails, as below.
>>
>>>
>>> Can you run
>>>
>>> bash -x scripts/faddr2line <vmlinux or .ko file> hisi_sas_sata_done+0x8/0x38
>>>
>>> and share the output?
>>
>> on rc3 we get:
>>
>> https://raw.githubusercontent.com/hisilicon/kernel-dev/private-topic-sas-5.19-faddr2line-linux-rc3/before2
>
> Does this fix it?
>
> 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
> .

Yeah, looks ok now.

Tested-by: John Garry <[email protected]>

thanks