Re: [Crash-utility] [PATCH][v2] Remove __exception_text_start and __exception_text_end for ARM64

2019-12-30 Thread Dave Anderson
> Hi Prabhakar,
>
> On Mon, Dec 30, 2019 at 9:55 AM Prabhakar Kushwaha
>  wrote:
>>
>> Dear Bhupesh,
>>
>> On Tue, Dec 24, 2019 at 9:39 AM Prabhakar Kushwaha
>>  wrote:
>> >
>> > On Tue, Dec 24, 2019 at 1:09 AM Bhupesh Sharma 
>> wrote:
>> > >
>> > > On Mon, Dec 23, 2019 at 7:49 PM Prabhakar Kushwaha
>> > >  wrote:
>> > > >
>> > > > On Mon, Dec 23, 2019 at 7:32 PM Dave Anderson
>>  wrote:
>> > > > >
>> > > > >
>> > > > >
>> > > > > - Original Message -
>> > > > > > __exception_text_start and __exception_text_end is used to
>> group functions
>> > > > > > and place according to linker script in such a way to achieve
>> > > > > > kprobe blacklist. Linux commit b6e43c0e3129 ("arm64: remove
>> __exception
>> > > > > > annotations") has removed __exception_text_start and
>> > > > > > __exception_text_end and uses NOKPROBE_SYMBOL() for blacklist
>> kprobes.
>> > > > > >
>> > > > > > So removing references of __exception_text_start and
>> __exception_text_end
>> > > > > > for ARM64.
>> > > > >
>> > > > > NAK for a couple of reasons...
>> > > > >
>> > > > > First, they cannot be removed for backward-compatibility
>> purposes, and secondly
>> > > > > an alternative method is required for arm64_back_trace_cmd() for
>> handling
>> > > > > exception frames.
>> > > > >
>> > > >
>> > > > We are getting following error with crash tool with latest kernel.
>> > > > crash: cannot resolve "__exception_text_start" error
>> > > >
>> > > > it is because of Linux commit b6e43c0e3129 which removes
>> > > > __exception_text_start and __exception_text_end.
>> > > > We need to find alternate way of fixing it.
>> > >
>> > > I cannot seem to remember reproducing this issue with crash with
>> > > latest kernel on my arm64 boards.
>> > > Can you be more specific on the exact kernel version and the crash
>> > > command you used, just to be sure we are able to reproduce the same?
>> > >
>> >
>> > We are seeing this issue on Thuder X platform (arm64).
>> >
>> > Please find details of commit id.
>> > A) crash tool: https://github.com/crash-utility/crash.git
>> > commit:  af7f78dc501b8acf7fee3f924f69e93513d0a74b (Fix for the "log
>> -a" option.)
>> >
>> > B) Linux:
>> git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
>> > commit:  46cf053efec6a3a5f343fead83efe8252a46 (Linux 5.5-rc3)
>> >
>> > C) Kexec:
>> https://git.kernel.org/pub/scm/utils/kernel/kexec/kexec-tools.git
>> > commit: bd077966e2b9041c24df5b689e67670f02be7b0d (kexec-tools: Fix
>> > conversion overflow when compiling on 32-bit platforms)
>> >
>> >
>> > Logs
>> > root@ubuntu$ ./crash /proc/vmcore /usr/src/tovards/linux/vmlinux
>> >
>> > crash 7.2.7++
>> > Copyright (C) 2002-2019  Red Hat, Inc.
>> > Copyright (C) 2004, 2005, 2006, 2010  IBM Corporation
>> > Copyright (C) 1999-2006  Hewlett-Packard Co
>> > Copyright (C) 2005, 2006, 2011, 2012  Fujitsu Limited
>> > Copyright (C) 2006, 2007  VA Linux Systems Japan K.K.
>> > Copyright (C) 2005, 2011  NEC Corporation
>> > Copyright (C) 1999, 2002, 2007  Silicon Graphics, Inc.
>> > Copyright (C) 1999, 2000, 2001, 2002  Mission Critical Linux, Inc.
>> > This program is free software, covered by the GNU General Public
>> License,
>> > and you are welcome to change it and/or distribute copies of it under
>> > certain conditions.  Enter "help copying" to see the conditions.
>> > This program has absolutely no warranty.  Enter "help warranty" for
>> details.
>> >
>> > vmcoreinfo : vabits_actual: 48
>> > GNU gdb (GDB) 7.6
>> > Copyright (C) 2013 Free Software Foundation, Inc.
>> > License GPLv3+: GNU GPL version 3 or later
>> 
>> > This is free software: you are free to change and redistribute it.
>> > There is NO WARRANTY, to the extent permitted by law.  Type "show
>> copying"
>> > and "show warranty" for details.
>> > This GDB was configured as "aarch64-unknown-linux-gnu".
>> > For bug reporting instructions, please see:
>> > ...
>> >
>> > crash: cannot resolve "__exception_text_start"
>> >
>>
>> i hope you got sometime to reproduce this issue.
>> It can also be seen on Linux 5.5-rc4 tag
>> (fd6988496e79a6a4bdb514a4655d2920209eb85d).
>>
>> crash-util  commit 5e975dd8c817ea6aea35e1e15b83c378aee9c136 (HEAD ->
>> master, origin/master, origin/HEAD)
>
> I was able to reproduce the issue with latest Linus's tree. I am
> working on a patch (as per Dave's suggestion) to fix backward
> compatibility as well as 'arm64_back_trace_cmd()' (bt command support)
> and will post it out soon (I am hoping to post out a version after the
> new year break).
>
> Thanks  and a Happy New Year,
> Bhupesh
>

Thanks Bhupesh, I'm also out until next week.

And yeah, for 5.5 and later kernels it looks like
arm64_in_exception_text() will have to check the incoming
address's symbol name against the set of exception handler
symbol names.  The older kernels can still utilize the handy
text range between __exception_text_start/__exception_text_end.

Kind of a pain, but I 

Re: [Crash-utility] [PATCH][v2] Remove __exception_text_start and __exception_text_end for ARM64

2019-12-30 Thread Bhupesh Sharma
Hi Prabhakar,

On Mon, Dec 30, 2019 at 9:55 AM Prabhakar Kushwaha
 wrote:
>
> Dear Bhupesh,
>
> On Tue, Dec 24, 2019 at 9:39 AM Prabhakar Kushwaha
>  wrote:
> >
> > On Tue, Dec 24, 2019 at 1:09 AM Bhupesh Sharma  wrote:
> > >
> > > On Mon, Dec 23, 2019 at 7:49 PM Prabhakar Kushwaha
> > >  wrote:
> > > >
> > > > On Mon, Dec 23, 2019 at 7:32 PM Dave Anderson  
> > > > wrote:
> > > > >
> > > > >
> > > > >
> > > > > - Original Message -
> > > > > > __exception_text_start and __exception_text_end is used to group 
> > > > > > functions
> > > > > > and place according to linker script in such a way to achieve
> > > > > > kprobe blacklist. Linux commit b6e43c0e3129 ("arm64: remove 
> > > > > > __exception
> > > > > > annotations") has removed __exception_text_start and
> > > > > > __exception_text_end and uses NOKPROBE_SYMBOL() for blacklist 
> > > > > > kprobes.
> > > > > >
> > > > > > So removing references of __exception_text_start and 
> > > > > > __exception_text_end
> > > > > > for ARM64.
> > > > >
> > > > > NAK for a couple of reasons...
> > > > >
> > > > > First, they cannot be removed for backward-compatibility purposes, 
> > > > > and secondly
> > > > > an alternative method is required for arm64_back_trace_cmd() for 
> > > > > handling
> > > > > exception frames.
> > > > >
> > > >
> > > > We are getting following error with crash tool with latest kernel.
> > > > crash: cannot resolve "__exception_text_start" error
> > > >
> > > > it is because of Linux commit b6e43c0e3129 which removes
> > > > __exception_text_start and __exception_text_end.
> > > > We need to find alternate way of fixing it.
> > >
> > > I cannot seem to remember reproducing this issue with crash with
> > > latest kernel on my arm64 boards.
> > > Can you be more specific on the exact kernel version and the crash
> > > command you used, just to be sure we are able to reproduce the same?
> > >
> >
> > We are seeing this issue on Thuder X platform (arm64).
> >
> > Please find details of commit id.
> > A) crash tool: https://github.com/crash-utility/crash.git
> > commit:  af7f78dc501b8acf7fee3f924f69e93513d0a74b (Fix for the "log -a" 
> > option.)
> >
> > B) Linux:  git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
> > commit:  46cf053efec6a3a5f343fead83efe8252a46 (Linux 5.5-rc3)
> >
> > C) Kexec: https://git.kernel.org/pub/scm/utils/kernel/kexec/kexec-tools.git
> > commit: bd077966e2b9041c24df5b689e67670f02be7b0d (kexec-tools: Fix
> > conversion overflow when compiling on 32-bit platforms)
> >
> >
> > Logs
> > root@ubuntu$ ./crash /proc/vmcore /usr/src/tovards/linux/vmlinux
> >
> > crash 7.2.7++
> > Copyright (C) 2002-2019  Red Hat, Inc.
> > Copyright (C) 2004, 2005, 2006, 2010  IBM Corporation
> > Copyright (C) 1999-2006  Hewlett-Packard Co
> > Copyright (C) 2005, 2006, 2011, 2012  Fujitsu Limited
> > Copyright (C) 2006, 2007  VA Linux Systems Japan K.K.
> > Copyright (C) 2005, 2011  NEC Corporation
> > Copyright (C) 1999, 2002, 2007  Silicon Graphics, Inc.
> > Copyright (C) 1999, 2000, 2001, 2002  Mission Critical Linux, Inc.
> > This program is free software, covered by the GNU General Public License,
> > and you are welcome to change it and/or distribute copies of it under
> > certain conditions.  Enter "help copying" to see the conditions.
> > This program has absolutely no warranty.  Enter "help warranty" for details.
> >
> > vmcoreinfo : vabits_actual: 48
> > GNU gdb (GDB) 7.6
> > Copyright (C) 2013 Free Software Foundation, Inc.
> > License GPLv3+: GNU GPL version 3 or later 
> > 
> > This is free software: you are free to change and redistribute it.
> > There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
> > and "show warranty" for details.
> > This GDB was configured as "aarch64-unknown-linux-gnu".
> > For bug reporting instructions, please see:
> > ...
> >
> > crash: cannot resolve "__exception_text_start"
> >
>
> i hope you got sometime to reproduce this issue.
> It can also be seen on Linux 5.5-rc4 tag
> (fd6988496e79a6a4bdb514a4655d2920209eb85d).
>
> crash-util  commit 5e975dd8c817ea6aea35e1e15b83c378aee9c136 (HEAD ->
> master, origin/master, origin/HEAD)

I was able to reproduce the issue with latest Linus's tree. I am
working on a patch (as per Dave's suggestion) to fix backward
compatibility as well as 'arm64_back_trace_cmd()' (bt command support)
and will post it out soon (I am hoping to post out a version after the
new year break).

Thanks  and a Happy New Year,
Bhupesh


--
Crash-utility mailing list
Crash-utility@redhat.com
https://www.redhat.com/mailman/listinfo/crash-utility