2022-07-12 20:23:52

by kernel test robot

[permalink] [raw]
Subject: [linux-stable-rc:linux-5.10.y 6996/7120] arch/x86/kernel/ftrace_64.o: warning: objtool: ftrace_epilogue()+0x10: unreachable instruction

tree: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-5.10.y
head: ba398a0e54049bb6a1c102245ae84103f103ff2c
commit: 8ca9dceaa17983afec1cc8e1a6e76d6bd142447a [6996/7120] objtool: Assume only ELF functions do sibling calls
config: x86_64-rhel-8.3-syz (https://download.01.org/0day-ci/archive/20220713/[email protected]/config)
compiler: gcc-11 (Debian 11.3.0-3) 11.3.0
reproduce (this is a W=1 build):
# https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git/commit/?id=8ca9dceaa17983afec1cc8e1a6e76d6bd142447a
git remote add linux-stable-rc https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git
git fetch --no-tags linux-stable-rc linux-5.10.y
git checkout 8ca9dceaa17983afec1cc8e1a6e76d6bd142447a
# save the config file
mkdir build_dir && cp config build_dir/.config
make W=1 O=build_dir ARCH=x86_64 SHELL=/bin/bash arch/x86/

If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <[email protected]>

All warnings (new ones prefixed by >>):

>> arch/x86/kernel/ftrace_64.o: warning: objtool: ftrace_epilogue()+0x10: unreachable instruction


objdump-func vmlinux.o ftrace_epilogue:
0000 000000000008ca70 <ftrace_epilogue>:
0000 8ca70: e9 00 00 00 00 jmp 8ca75 <ftrace_epilogue+0x5> 8ca71: R_X86_64_PLT32 ftrace_stub-0x4
0005 8ca75: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0(%rax,%rax,1)

--
0-DAY CI Kernel Test Service
https://01.org/lkp


2022-07-13 23:57:05

by Ben Hutchings

[permalink] [raw]
Subject: Re: [linux-stable-rc:linux-5.10.y 6996/7120] arch/x86/kernel/ftrace_64.o: warning: objtool: ftrace_epilogue()+0x10: unreachable instruction

On Wed, 2022-07-13 at 03:57 +0800, kernel test robot wrote:
> tree: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-5.10.y
> head: ba398a0e54049bb6a1c102245ae84103f103ff2c
> commit: 8ca9dceaa17983afec1cc8e1a6e76d6bd142447a [6996/7120] objtool: Assume only ELF functions do sibling calls
> config: x86_64-rhel-8.3-syz (https://download.01.org/0day-ci/archive/20220713/[email protected]/config)
> compiler: gcc-11 (Debian 11.3.0-3) 11.3.0
> reproduce (this is a W=1 build):
> # https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git/commit/?id=8ca9dceaa17983afec1cc8e1a6e76d6bd142447a
> git remote add linux-stable-rc https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git
> git fetch --no-tags linux-stable-rc linux-5.10.y
> git checkout 8ca9dceaa17983afec1cc8e1a6e76d6bd142447a
> # save the config file
> mkdir build_dir && cp config build_dir/.config
> make W=1 O=build_dir ARCH=x86_64 SHELL=/bin/bash arch/x86/
>
> If you fix the issue, kindly add following tag where applicable
> Reported-by: kernel test robot <[email protected]>
>
> All warnings (new ones prefixed by >>):
>
> > > arch/x86/kernel/ftrace_64.o: warning: objtool: ftrace_epilogue()+0x10: unreachable instruction
>
>
> objdump-func vmlinux.o ftrace_epilogue:
> 0000 000000000008ca70 <ftrace_epilogue>:
> 0000 8ca70: e9 00 00 00 00 jmp 8ca75 <ftrace_epilogue+0x5> 8ca71: R_X86_64_PLT32 ftrace_stub-0x4
> 0005 8ca75: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0(%rax,%rax,1)
>

I don't know what's going on here. There's a jump to a ret (now
potentialy a rethunk), and nothing obviously unreachable.
ftrace_epilogue got simplified by commit 0c0593b45c9b "x86/ftrace: Make
function graph use ftrace directly" which maybe avoids the warning in
the mainline.

Ben.


Attachments:
signature.asc (849.00 B)
This is a digitally signed message part

2022-07-14 00:35:21

by Josh Poimboeuf

[permalink] [raw]
Subject: Re: [linux-stable-rc:linux-5.10.y 6996/7120] arch/x86/kernel/ftrace_64.o: warning: objtool: ftrace_epilogue()+0x10: unreachable instruction

On Thu, Jul 14, 2022 at 01:41:58AM +0200, Ben Hutchings wrote:
> On Wed, 2022-07-13 at 03:57 +0800, kernel test robot wrote:
> > tree: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-5.10.y
> > head: ba398a0e54049bb6a1c102245ae84103f103ff2c
> > commit: 8ca9dceaa17983afec1cc8e1a6e76d6bd142447a [6996/7120] objtool: Assume only ELF functions do sibling calls
> > config: x86_64-rhel-8.3-syz (https://download.01.org/0day-ci/archive/20220713/[email protected]/config)
> > compiler: gcc-11 (Debian 11.3.0-3) 11.3.0
> > reproduce (this is a W=1 build):
> > # https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git/commit/?id=8ca9dceaa17983afec1cc8e1a6e76d6bd142447a
> > git remote add linux-stable-rc https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git
> > git fetch --no-tags linux-stable-rc linux-5.10.y
> > git checkout 8ca9dceaa17983afec1cc8e1a6e76d6bd142447a
> > # save the config file
> > mkdir build_dir && cp config build_dir/.config
> > make W=1 O=build_dir ARCH=x86_64 SHELL=/bin/bash arch/x86/
> >
> > If you fix the issue, kindly add following tag where applicable
> > Reported-by: kernel test robot <[email protected]>
> >
> > All warnings (new ones prefixed by >>):
> >
> > > > arch/x86/kernel/ftrace_64.o: warning: objtool: ftrace_epilogue()+0x10: unreachable instruction
> >
> >
> > objdump-func vmlinux.o ftrace_epilogue:
> > 0000 000000000008ca70 <ftrace_epilogue>:
> > 0000 8ca70: e9 00 00 00 00 jmp 8ca75 <ftrace_epilogue+0x5> 8ca71: R_X86_64_PLT32 ftrace_stub-0x4
> > 0005 8ca75: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0(%rax,%rax,1)
> >
>
> I don't know what's going on here. There's a jump to a ret (now
> potentialy a rethunk), and nothing obviously unreachable.
> ftrace_epilogue got simplified by commit 0c0593b45c9b "x86/ftrace: Make
> function graph use ftrace directly" which maybe avoids the warning in
> the mainline.

The unreachable warning is actually pointing to ftrace_stub(). I think
you need

18660698a3d3 ("x86/ftrace: Add UNWIND_HINT_FUNC annotation for ftrace_stub")

--
Josh

2022-07-14 09:44:49

by Greg Kroah-Hartman

[permalink] [raw]
Subject: Re: [linux-stable-rc:linux-5.10.y 6996/7120] arch/x86/kernel/ftrace_64.o: warning: objtool: ftrace_epilogue()+0x10: unreachable instruction

On Wed, Jul 13, 2022 at 05:18:42PM -0700, Josh Poimboeuf wrote:
> On Thu, Jul 14, 2022 at 01:41:58AM +0200, Ben Hutchings wrote:
> > On Wed, 2022-07-13 at 03:57 +0800, kernel test robot wrote:
> > > tree: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-5.10.y
> > > head: ba398a0e54049bb6a1c102245ae84103f103ff2c
> > > commit: 8ca9dceaa17983afec1cc8e1a6e76d6bd142447a [6996/7120] objtool: Assume only ELF functions do sibling calls
> > > config: x86_64-rhel-8.3-syz (https://download.01.org/0day-ci/archive/20220713/[email protected]/config)
> > > compiler: gcc-11 (Debian 11.3.0-3) 11.3.0
> > > reproduce (this is a W=1 build):
> > > # https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git/commit/?id=8ca9dceaa17983afec1cc8e1a6e76d6bd142447a
> > > git remote add linux-stable-rc https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git
> > > git fetch --no-tags linux-stable-rc linux-5.10.y
> > > git checkout 8ca9dceaa17983afec1cc8e1a6e76d6bd142447a
> > > # save the config file
> > > mkdir build_dir && cp config build_dir/.config
> > > make W=1 O=build_dir ARCH=x86_64 SHELL=/bin/bash arch/x86/
> > >
> > > If you fix the issue, kindly add following tag where applicable
> > > Reported-by: kernel test robot <[email protected]>
> > >
> > > All warnings (new ones prefixed by >>):
> > >
> > > > > arch/x86/kernel/ftrace_64.o: warning: objtool: ftrace_epilogue()+0x10: unreachable instruction
> > >
> > >
> > > objdump-func vmlinux.o ftrace_epilogue:
> > > 0000 000000000008ca70 <ftrace_epilogue>:
> > > 0000 8ca70: e9 00 00 00 00 jmp 8ca75 <ftrace_epilogue+0x5> 8ca71: R_X86_64_PLT32 ftrace_stub-0x4
> > > 0005 8ca75: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0(%rax,%rax,1)
> > >
> >
> > I don't know what's going on here. There's a jump to a ret (now
> > potentialy a rethunk), and nothing obviously unreachable.
> > ftrace_epilogue got simplified by commit 0c0593b45c9b "x86/ftrace: Make
> > function graph use ftrace directly" which maybe avoids the warning in
> > the mainline.
>
> The unreachable warning is actually pointing to ftrace_stub(). I think
> you need
>
> 18660698a3d3 ("x86/ftrace: Add UNWIND_HINT_FUNC annotation for ftrace_stub")

Thanks for the hint, now queued up!

greg k-h