2021-06-23 22:32:13

by Paul E. McKenney

[permalink] [raw]
Subject: Build failure in -next

Hello, Aneesh!

Yesterday evening's next-20210622 testing gave me the following
kernel-build error:

ld: mm/mremap.o: in function `move_huge_pud':
/home/git/linux-next/mm/mremap.c:372: undefined reference to `__compiletime_assert_395'

Bisection landed on this commit:

257121c5aabe ("mm/mremap: convert huge PUD move to separate helper")

I have no idea how this commit relates to that error message, but
reverting this commit on top of next-20210622 really does get rid of
the problem.

The following reproducer provokes this error:

tools/testing/selftests/rcutorture/bin/kvm.sh --allcpus --torture lock --configs LOCK07 --build-only --kconfig "CONFIG_DEBUG_LOCK_ALLOC=y CONFIG_PROVE_LOCKING=y" --kmake-arg "CC=clang-11"

Run the above command in the top-level directory of your -next source
tree, and using this compiler:

$ clang-11 -v
Ubuntu clang version 11.1.0-++20210428103817+1fdec59bffc1-1~exp1~20210428204431.166
Target: x86_64-pc-linux-gnu

Thoughts?

Thanx, Paul


2021-06-23 23:42:58

by Nick Desaulniers

[permalink] [raw]
Subject: Re: Build failure in -next

On Wed, Jun 23, 2021 at 3:30 PM Paul E. McKenney <[email protected]> wrote:
>
> Hello, Aneesh!
>
> Yesterday evening's next-20210622 testing gave me the following
> kernel-build error:
>
> ld: mm/mremap.o: in function `move_huge_pud':
> /home/git/linux-next/mm/mremap.c:372: undefined reference to `__compiletime_assert_395'
>
> Bisection landed on this commit:
>
> 257121c5aabe ("mm/mremap: convert huge PUD move to separate helper")
>
> I have no idea how this commit relates to that error message, but
> reverting this commit on top of next-20210622 really does get rid of
> the problem.
>
> The following reproducer provokes this error:
>
> tools/testing/selftests/rcutorture/bin/kvm.sh --allcpus --torture lock --configs LOCK07 --build-only --kconfig "CONFIG_DEBUG_LOCK_ALLOC=y CONFIG_PROVE_LOCKING=y" --kmake-arg "CC=clang-11"
>
> Run the above command in the top-level directory of your -next source
> tree, and using this compiler:
>
> $ clang-11 -v
> Ubuntu clang version 11.1.0-++20210428103817+1fdec59bffc1-1~exp1~20210428204431.166
> Target: x86_64-pc-linux-gnu
>
> Thoughts?
>
> Thanx, Paul

++beers_owed; for the report and bisection. Also reported
https://lore.kernel.org/lkml/[email protected]/,
let's chat over there.

--
Thanks,
~Nick Desaulniers

2021-06-23 23:45:09

by Nathan Chancellor

[permalink] [raw]
Subject: Re: Build failure in -next

Hi Paul,

On 6/23/2021 3:30 PM, Paul E. McKenney wrote:
> Hello, Aneesh!
>
> Yesterday evening's next-20210622 testing gave me the following
> kernel-build error:
>
> ld: mm/mremap.o: in function `move_huge_pud':
> /home/git/linux-next/mm/mremap.c:372: undefined reference to `__compiletime_assert_395'
>
> Bisection landed on this commit:
>
> 257121c5aabe ("mm/mremap: convert huge PUD move to separate helper")
>
> I have no idea how this commit relates to that error message, but
> reverting this commit on top of next-20210622 really does get rid of
> the problem.

This was reported by Naresh Kamboju last week:

https://lore.kernel.org/r/CA+G9fYsWHE5Vu9T3FV-vtHHbVFJWEF=bmjQxwaZs3uVYef028g@mail.gmail.com/

It seems to be related to the fact that older versions of clang cannot
figure out that the HPAGE_PUD case in move_pgt_entry() is never called
when CONFIG_TRANSPARENT_HUGE is unset so it is not eliminated, which is
problematic because flush_pud_tlb_range() evaluates to BUILD_BUG() in
that case, which is called within move_huge_pud().

> The following reproducer provokes this error:
>
> tools/testing/selftests/rcutorture/bin/kvm.sh --allcpus --torture lock --configs LOCK07 --build-only --kconfig "CONFIG_DEBUG_LOCK_ALLOC=y CONFIG_PROVE_LOCKING=y" --kmake-arg "CC=clang-11"
>
> Run the above command in the top-level directory of your -next source
> tree, and using this compiler:
>
> $ clang-11 -v
> Ubuntu clang version 11.1.0-++20210428103817+1fdec59bffc1-1~exp1~20210428204431.166
> Target: x86_64-pc-linux-gnu
>
> Thoughts?

Aneesh had a patch in that thread above that would resolve the issue, it
just needs to be sent to Andrew for a fixup patch.

Cheers,
Nathan

2021-06-24 00:21:41

by Paul E. McKenney

[permalink] [raw]
Subject: Re: Build failure in -next

On Wed, Jun 23, 2021 at 04:39:11PM -0700, Nick Desaulniers wrote:
> On Wed, Jun 23, 2021 at 3:30 PM Paul E. McKenney <[email protected]> wrote:
> >
> > Hello, Aneesh!
> >
> > Yesterday evening's next-20210622 testing gave me the following
> > kernel-build error:
> >
> > ld: mm/mremap.o: in function `move_huge_pud':
> > /home/git/linux-next/mm/mremap.c:372: undefined reference to `__compiletime_assert_395'
> >
> > Bisection landed on this commit:
> >
> > 257121c5aabe ("mm/mremap: convert huge PUD move to separate helper")
> >
> > I have no idea how this commit relates to that error message, but
> > reverting this commit on top of next-20210622 really does get rid of
> > the problem.
> >
> > The following reproducer provokes this error:
> >
> > tools/testing/selftests/rcutorture/bin/kvm.sh --allcpus --torture lock --configs LOCK07 --build-only --kconfig "CONFIG_DEBUG_LOCK_ALLOC=y CONFIG_PROVE_LOCKING=y" --kmake-arg "CC=clang-11"
> >
> > Run the above command in the top-level directory of your -next source
> > tree, and using this compiler:
> >
> > $ clang-11 -v
> > Ubuntu clang version 11.1.0-++20210428103817+1fdec59bffc1-1~exp1~20210428204431.166
> > Target: x86_64-pc-linux-gnu
> >
> > Thoughts?
> >
> > Thanx, Paul
>
> ++beers_owed; for the report and bisection. Also reported
> https://lore.kernel.org/lkml/[email protected]/,
> let's chat over there.

And thank you for the redirection!

Thanx, Paul