tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: e42617b825f8073569da76dc4510bfa019b1c35a
commit: 30544ed5de431fe25d3793e4dd5a058d877c4d77 lib/bitmap: introduce bitmap_replace() helper
date: 5 days ago
config: xtensa-randconfig-a001-20191209 (attached as .config)
compiler: xtensa-linux-gcc (GCC) 7.5.0
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
git checkout 30544ed5de431fe25d3793e4dd5a058d877c4d77
# save the attached .config to linux build tree
GCC_VERSION=7.5.0 make.cross ARCH=xtensa
If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <[email protected]>
All warnings (new ones prefixed by >>):
>> WARNING: lib/test_bitmap.o(.text.unlikely+0x5c): Section mismatch in reference from the function bitmap_copy_clear_tail() to the variable .init.rodata:clump_exp
The function bitmap_copy_clear_tail() references
the variable __initconst clump_exp.
This is often because bitmap_copy_clear_tail lacks a __initconst
annotation or the annotation of clump_exp is wrong.
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/hyperkitty/list/[email protected] Intel Corporation
On Tue, Dec 10, 2019 at 04:17:03AM +0800, kbuild test robot wrote:
+Cc: Max for xtensa matters, perhaps he has an idea.
> tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
> head: e42617b825f8073569da76dc4510bfa019b1c35a
> commit: 30544ed5de431fe25d3793e4dd5a058d877c4d77 lib/bitmap: introduce bitmap_replace() helper
> date: 5 days ago
> config: xtensa-randconfig-a001-20191209 (attached as .config)
> compiler: xtensa-linux-gcc (GCC) 7.5.0
> reproduce:
> wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
> chmod +x ~/bin/make.cross
> git checkout 30544ed5de431fe25d3793e4dd5a058d877c4d77
> # save the attached .config to linux build tree
> GCC_VERSION=7.5.0 make.cross ARCH=xtensa
>
> If you fix the issue, kindly add following tag
> Reported-by: kbuild test robot <[email protected]>
>
> All warnings (new ones prefixed by >>):
I'm not sure I got this (esp. relation to my patch).
The mentioned code definitely compiled for 32-bit (since only then mentioned
bitmap API is in use). I have tried to reproduce on i386 compilation (gcc 9.x),
but can't.
> >> WARNING: lib/test_bitmap.o(.text.unlikely+0x5c): Section mismatch in reference from the function bitmap_copy_clear_tail() to the variable .init.rodata:clump_exp
> The function bitmap_copy_clear_tail() references
> the variable __initconst clump_exp.
> This is often because bitmap_copy_clear_tail lacks a __initconst
> annotation or the annotation of clump_exp is wrong.
>
> ---
> 0-DAY kernel test infrastructure Open Source Technology Center
> https://lists.01.org/hyperkitty/list/[email protected] Intel Corporation
--
With Best Regards,
Andy Shevchenko
Hi Andy,
On Fri, Dec 13, 2019 at 3:16 AM Andy Shevchenko
<[email protected]> wrote:
> On Tue, Dec 10, 2019 at 04:17:03AM +0800, kbuild test robot wrote:
>
> +Cc: Max for xtensa matters, perhaps he has an idea.
>
> > tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
> > head: e42617b825f8073569da76dc4510bfa019b1c35a
> > commit: 30544ed5de431fe25d3793e4dd5a058d877c4d77 lib/bitmap: introduce bitmap_replace() helper
> > date: 5 days ago
> > config: xtensa-randconfig-a001-20191209 (attached as .config)
> > compiler: xtensa-linux-gcc (GCC) 7.5.0
> > reproduce:
> > wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
> > chmod +x ~/bin/make.cross
> > git checkout 30544ed5de431fe25d3793e4dd5a058d877c4d77
> > # save the attached .config to linux build tree
> > GCC_VERSION=7.5.0 make.cross ARCH=xtensa
> >
> > If you fix the issue, kindly add following tag
> > Reported-by: kbuild test robot <[email protected]>
> >
> > All warnings (new ones prefixed by >>):
>
> I'm not sure I got this (esp. relation to my patch).
> The mentioned code definitely compiled for 32-bit (since only then mentioned
> bitmap API is in use). I have tried to reproduce on i386 compilation (gcc 9.x),
> but can't.
I was able to reproduce it on xtensa with gcc-9.
The issue comes from the test "test_replace", specifically
from the following call:
bitmap_replace(bmap, &exp2[0], &exp2[1], exp2_to_exp3_mask, nbits);
An invariable part of the call sequence used here is instantiated in
the section .text.unlikely with a reference to exp2_to_exp3_mask built
into it and it's called from the test_replace. It looks like a compiler bug
to me, I'd expect this code to be emitted to the .init.text, i.e the same
section where the function it was hoisted from resides.
And why "unlikely"? This code is definitely executed.
I'll file a bug against gcc.
--
Thanks.
-- Max
On Fri, Dec 13, 2019 at 01:08:08PM -0800, Max Filippov wrote:
> On Fri, Dec 13, 2019 at 3:16 AM Andy Shevchenko
> <[email protected]> wrote:
> > On Tue, Dec 10, 2019 at 04:17:03AM +0800, kbuild test robot wrote:
> >
> > +Cc: Max for xtensa matters, perhaps he has an idea.
> >
> > > tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
> > > head: e42617b825f8073569da76dc4510bfa019b1c35a
> > > commit: 30544ed5de431fe25d3793e4dd5a058d877c4d77 lib/bitmap: introduce bitmap_replace() helper
> > > date: 5 days ago
> > > config: xtensa-randconfig-a001-20191209 (attached as .config)
> > > compiler: xtensa-linux-gcc (GCC) 7.5.0
> > > reproduce:
> > > wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
> > > chmod +x ~/bin/make.cross
> > > git checkout 30544ed5de431fe25d3793e4dd5a058d877c4d77
> > > # save the attached .config to linux build tree
> > > GCC_VERSION=7.5.0 make.cross ARCH=xtensa
> > >
> > > If you fix the issue, kindly add following tag
> > > Reported-by: kbuild test robot <[email protected]>
> > >
> > > All warnings (new ones prefixed by >>):
> >
> > I'm not sure I got this (esp. relation to my patch).
> > The mentioned code definitely compiled for 32-bit (since only then mentioned
> > bitmap API is in use). I have tried to reproduce on i386 compilation (gcc 9.x),
> > but can't.
>
> I was able to reproduce it on xtensa with gcc-9.
> The issue comes from the test "test_replace", specifically
> from the following call:
> bitmap_replace(bmap, &exp2[0], &exp2[1], exp2_to_exp3_mask, nbits);
>
> An invariable part of the call sequence used here is instantiated in
> the section .text.unlikely with a reference to exp2_to_exp3_mask built
> into it and it's called from the test_replace. It looks like a compiler bug
> to me, I'd expect this code to be emitted to the .init.text, i.e the same
> section where the function it was hoisted from resides.
> And why "unlikely"? This code is definitely executed.
>
> I'll file a bug against gcc.
Thanks for an analysis and quick response!
--
With Best Regards,
Andy Shevchenko
On Fri, Dec 13, 2019 at 1:08 PM Max Filippov <[email protected]> wrote:
> I'll file a bug against gcc.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92938
--
Thanks.
-- Max