Re: fs/overlayfs/copy_up.o: warning: objtool: ovl_copy_up_tmpfile() falls through to next function ovl_create_index.cold()

From: Yujie Liu
Date: Tue Mar 12 2024 - 03:56:26 EST


Hi Amir,

On Tue, Feb 27, 2024 at 03:56:53PM +0200, Amir Goldstein wrote:
> On Sun, Feb 25, 2024 at 11:25 PM kernel test robot <lkp@xxxxxxxxx> wrote:
> >
> > tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
> > head: 70ff1fe626a166dcaadb5a81bfe75e22c91f5dbf
> > commit: 5b02bfc1e7e3811c5bf7f0fa626a0694d0dbbd77 ovl: do not encode lower fh with upper sb_writers held
> > date: 4 months ago
> > config: x86_64-buildonly-randconfig-r001-20230616 (https://download.01.org/0day-ci/archive/20240226/202402260556.0rujs05e-lkp@xxxxxxxxx/config)
> > compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
> > reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240226/202402260556.0rujs05e-lkp@xxxxxxxxx/reproduce)
> >
> > If you fix the issue in a separate patch/commit (i.e. not just a new version of
> > the same patch/commit), kindly add following tags
> > | Reported-by: kernel test robot <lkp@xxxxxxxxx>
> > | Closes: https://lore.kernel.org/oe-kbuild-all/202402260556.0rujs05e-lkp@xxxxxxxxx/
> >
> > All warnings (new ones prefixed by >>):
> >
> > >> fs/overlayfs/copy_up.o: warning: objtool: ovl_copy_up_tmpfile() falls through to next function ovl_create_index.cold()
> >
>
> I have no idea what this is about.
> Does not seem related to the regressing commit.
> This:
> https://lore.kernel.org/lkml/caa4ec6c687931db805e692d4e4bf06cd87d33e6.1460729697.git.jpoimboe@xxxxxxxxxx/
> suggest that it might be a compiler bug?

Sorry for our late reply. We rechecked this case and found that this can
only be reproduced by a specific version of gcc. gcc-12.2.0 can
reproduce it while gcc-11.3.0 and gcc-13.2.0 cannot. This may indeed be
a flaw in gcc-12. Attached part of the disassembly of the object file
built by gcc-12. We will configure the bot to ignore this warning to
avoid false positives.

Disassembly of section .text.unlikely:
..

00000000000000e6 <ovl_copy_up_metadata.cold>:
..
155: e8 00 00 00 00 call 15a <ovl_copy_up_metadata.cold+0x74>
15a: 80 fb 01 cmp $0x1,%bl
15d: 0f 86 00 00 00 00 jbe 163 <ovl_copy_up_metadata.cold+0x7d>
163: e8 00 00 00 00 call 168 <ovl_copy_up_metadata.cold+0x82>
168: 0f b6 f3 movzbl %bl,%esi
16b: 48 c7 c7 00 00 00 00 mov $0x0,%rdi
172: e8 00 00 00 00 call 177 <ovl_copy_up_metadata.cold+0x91>
177: e9 00 00 00 00 jmp 17c <ovl_copy_up_tmpfile.cold>

000000000000017c <ovl_copy_up_tmpfile.cold>:
17c: e8 00 00 00 00 call 181 <ovl_create_index.cold> <--

0000000000000181 <ovl_create_index.cold>:
181: e8 00 00 00 00 call 186 <ovl_create_index.cold+0x5>
186: 0f b6 f3 movzbl %bl,%esi
189: 48 c7 c7 00 00 00 00 mov $0x0,%rdi
190: e8 00 00 00 00 call 195 <ovl_create_index.cold+0x14>
195: e9 00 00 00 00 jmp 19a <ovl_copy_up_workdir.cold>


Best Regards,
Yujie