Re: [ammarfaizi2-block:stable/linux-stable-rc/queue/5.15 146/150] kernel/futex.o: warning: objtool: futex_atomic_op_inuser()+0xb8: unreachable instruction

From: Peter Zijlstra
Date: Thu May 12 2022 - 04:17:42 EST


On Thu, May 12, 2022 at 10:00:33AM +0800, kernel test robot wrote:
> tree: https://github.com/ammarfaizi2/linux-block stable/linux-stable-rc/queue/5.15
> head: 305e905f70311e1b49cc730931a19c3e364f4d8c
> commit: 45dc9d706619a6814e4063d5431483f94badb5a1 [146/150] x86: Add straight-line-speculation mitigation
> config: x86_64-randconfig-m001-20220509 (https://download.01.org/0day-ci/archive/20220512/202205120956.qLpGQurX-lkp@xxxxxxxxx/config)
> compiler: gcc-11 (Debian 11.2.0-20) 11.2.0
> reproduce (this is a W=1 build):
> # https://github.com/ammarfaizi2/linux-block/commit/45dc9d706619a6814e4063d5431483f94badb5a1
> git remote add ammarfaizi2-block https://github.com/ammarfaizi2/linux-block
> git fetch --no-tags ammarfaizi2-block stable/linux-stable-rc/queue/5.15
> git checkout 45dc9d706619a6814e4063d5431483f94badb5a1
> # save the config file
> mkdir build_dir && cp config build_dir/.config
> make W=1 O=build_dir ARCH=x86_64 SHELL=/bin/bash
>
> If you fix the issue, kindly add following tag as appropriate
> Reported-by: kernel test robot <lkp@xxxxxxxxx>
>
> All warnings (new ones prefixed by >>):
>
> >> kernel/futex.o: warning: objtool: futex_atomic_op_inuser()+0xb8: unreachable instruction
> --
> >> mm/madvise.o: warning: objtool: madvise_behavior()+0x69: unreachable instruction
> --
> >> kernel/bpf/btf.o: warning: objtool: __btf_resolve_size()+0x72: unreachable instruction

Would it be possible for the robot to include the output of this script:

https://lkml.kernel.org/r/3eb3f091fd6bd9caba50392ceab98ce756804f3b.1650578171.git.jpoimboe@xxxxxxxxxx

for each objtool warning it gives (as run on vmlinux.o):

$ ./scripts/objdump-func build-output/vmlinux.o futex_atomic_op_inuser
$ ./scripts/objdump-func build-output/vmlinux.o madvise_behavior
$ ./scripts/objdump-func build-output/vmlinux.o __btf_resolve_size

etc.. that would make it easier to see what the problem is without
having to reproduce the build.

A super wild guess; but try this commit:

1ffbe4e935f9 ("objtool: Default ignore INT3 for unreachable")