2017-09-10 18:31:55

by Guenter Roeck

[permalink] [raw]
Subject: xtensa compiler error triggered by 'locking/lockdep: Implement the 'crossrelease' feature'

Hi,

xtensa:allmodconfig fails to build in mainline with compiler errors
as follows.

drivers/staging/rtl8723bs/core/rtw_ap.c: In function ‘expire_timeout_chk’:
drivers/staging/rtl8723bs/core/rtw_ap.c:442:1: internal compiler error:
in change_address_1, at emit-rtl.c:2126

drivers/staging/rtl8188eu/core/rtw_ap.c: In function ‘expire_timeout_chk’:
drivers/staging/rtl8188eu/core/rtw_ap.c:445:1: internal compiler error:
in change_address_1, at emit-rtl.c:2150

I tried gcc 6.3, 6.4, and 7.2; they all have the same problem.

Bisect points to commit b09be676e0f ("locking/lockdep: Implement the
'crossrelease' feature").

The compile error is still seen if I disable CONFIG_LOCKDEP_CROSSRELEASE.
The image builds fine if I disable both CONFIG_RTL8723BS and CONFIG_R8188EU.

Guenter

---
# bad: [24e700e291d52bd200212487e2b654c0aa3f07a2] Merge branch 'x86-apic-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
# good: [569dbb88e80deb68974ef6fdd6a13edb9d686261] Linux 4.13
git bisect start '24e700e291d5' '569dbb88e80d'
# good: [906dde0f355bd97c080c215811ae7db1137c4af8] Merge tag 'drm-for-v4.14' of git://people.freedesktop.org/~airlied/linux
git bisect good 906dde0f355bd97c080c215811ae7db1137c4af8
# bad: [edc2988c548db05e33b921fed15821010bc74895] Merge branch 'linus' into locking/core, to fix up conflicts
git bisect bad edc2988c548db05e33b921fed15821010bc74895
# good: [17bf1ad2e80db7c9bdafec9c2da72389247194e9] RDMA/mlx4: Properly annotate link layer variable
git bisect good 17bf1ad2e80db7c9bdafec9c2da72389247194e9
# good: [fe91f28138e730790db014812623cfaadd318fa6] Merge tag 'hwmon-for-linus-v4.14' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging
git bisect good fe91f28138e730790db014812623cfaadd318fa6
# bad: [e91498589746065e3ae95d9a00b068e525eec34f] locking/lockdep/selftests: Add mixed read-write ABBA tests
git bisect bad e91498589746065e3ae95d9a00b068e525eec34f
# bad: [28a903f63ec0811ead70ad0f8665e838d207a25e] locking/lockdep: Handle non(or multi)-acquisition of a crosslock
git bisect bad 28a903f63ec0811ead70ad0f8665e838d207a25e
# good: [b70cecf4b6b72a9977576ab32cca0e24f286f517] jump_label: Move CPU hotplug locking
git bisect good b70cecf4b6b72a9977576ab32cca0e24f286f517
# good: [a9668cd6ee288c4838bc668880ac085be551cac2] locking: Remove smp_mb__before_spinlock()
git bisect good a9668cd6ee288c4838bc668880ac085be551cac2
# good: [49347a986ab45eb1dafbf25170647c890f8ff192] locking/lockdep: Add a function building a chain between two classes
git bisect good 49347a986ab45eb1dafbf25170647c890f8ff192
# good: [ce07a9415f266e181a0a33033a5f7138760240a4] locking/lockdep: Make check_prev_add() able to handle external stack_trace
git bisect good ce07a9415f266e181a0a33033a5f7138760240a4
# bad: [23f873d8f9526ed7e49a1a02a45f8afb9ae5fb84] locking/lockdep: Detect and handle hist_lock ring buffer overwrite
git bisect bad 23f873d8f9526ed7e49a1a02a45f8afb9ae5fb84
# bad: [b09be676e0ff25bd6d2e7637e26d349f9109ad75] locking/lockdep: Implement the 'crossrelease' feature
git bisect bad b09be676e0ff25bd6d2e7637e26d349f9109ad75
# first bad commit: [b09be676e0ff25bd6d2e7637e26d349f9109ad75] locking/lockdep: Implement the 'crossrelease' feature


2017-09-10 18:40:15

by Peter Zijlstra

[permalink] [raw]
Subject: Re: xtensa compiler error triggered by 'locking/lockdep: Implement the 'crossrelease' feature'

On Sun, Sep 10, 2017 at 11:31:50AM -0700, Guenter Roeck wrote:
> Hi,
>
> xtensa:allmodconfig fails to build in mainline with compiler errors
> as follows.
>
> drivers/staging/rtl8723bs/core/rtw_ap.c: In function ‘expire_timeout_chk’:
> drivers/staging/rtl8723bs/core/rtw_ap.c:442:1: internal compiler error:
> in change_address_1, at emit-rtl.c:2126
>
> drivers/staging/rtl8188eu/core/rtw_ap.c: In function ‘expire_timeout_chk’:
> drivers/staging/rtl8188eu/core/rtw_ap.c:445:1: internal compiler error:
> in change_address_1, at emit-rtl.c:2150
>
> I tried gcc 6.3, 6.4, and 7.2; they all have the same problem.
>
> Bisect points to commit b09be676e0f ("locking/lockdep: Implement the
> 'crossrelease' feature").
>
> The compile error is still seen if I disable CONFIG_LOCKDEP_CROSSRELEASE.
> The image builds fine if I disable both CONFIG_RTL8723BS and CONFIG_R8188EU.

I'm taking it this is specific to the GCC xtensa backend, I've not seen
or heard of any other ICEs wrt this code.

I'd take this up with your compiler team, this is not something we can
do much about.

2017-09-11 01:58:35

by Max Filippov

[permalink] [raw]
Subject: Re: xtensa compiler error triggered by 'locking/lockdep: Implement the 'crossrelease' feature'

On Sun, Sep 10, 2017 at 11:31 AM, Guenter Roeck <[email protected]> wrote:
> xtensa:allmodconfig fails to build in mainline with compiler errors
> as follows.
>
> drivers/staging/rtl8723bs/core/rtw_ap.c: In function ‘expire_timeout_chk’:
> drivers/staging/rtl8723bs/core/rtw_ap.c:442:1: internal compiler error:
> in change_address_1, at emit-rtl.c:2126
>
> drivers/staging/rtl8188eu/core/rtw_ap.c: In function ‘expire_timeout_chk’:
> drivers/staging/rtl8188eu/core/rtw_ap.c:445:1: internal compiler error:
> in change_address_1, at emit-rtl.c:2150
>
> I tried gcc 6.3, 6.4, and 7.2; they all have the same problem.
>
> Bisect points to commit b09be676e0f ("locking/lockdep: Implement the
> 'crossrelease' feature").
>
> The compile error is still seen if I disable CONFIG_LOCKDEP_CROSSRELEASE.
> The image builds fine if I disable both CONFIG_RTL8723BS and CONFIG_R8188EU.

Thanks for the report. I'll look at the compiler.

--
Thanks.
-- Max

2017-09-12 03:19:49

by Max Filippov

[permalink] [raw]
Subject: Re: xtensa compiler error triggered by 'locking/lockdep: Implement the 'crossrelease' feature'

On Sun, Sep 10, 2017 at 6:58 PM, Max Filippov <[email protected]> wrote:
> On Sun, Sep 10, 2017 at 11:31 AM, Guenter Roeck <[email protected]> wrote:
>> xtensa:allmodconfig fails to build in mainline with compiler errors
>> as follows.
>>
>> drivers/staging/rtl8723bs/core/rtw_ap.c: In function ‘expire_timeout_chk’:
>> drivers/staging/rtl8723bs/core/rtw_ap.c:442:1: internal compiler error:
>> in change_address_1, at emit-rtl.c:2126
>>
>> drivers/staging/rtl8188eu/core/rtw_ap.c: In function ‘expire_timeout_chk’:
>> drivers/staging/rtl8188eu/core/rtw_ap.c:445:1: internal compiler error:
>> in change_address_1, at emit-rtl.c:2150
>>
>> I tried gcc 6.3, 6.4, and 7.2; they all have the same problem.
>>
>> Bisect points to commit b09be676e0f ("locking/lockdep: Implement the
>> 'crossrelease' feature").
>>
>> The compile error is still seen if I disable CONFIG_LOCKDEP_CROSSRELEASE.
>> The image builds fine if I disable both CONFIG_RTL8723BS and CONFIG_R8188EU.
>
> Thanks for the report. I'll look at the compiler.

There was a bug in the xtensa gcc backend, now fixed. See
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82181

--
Thanks.
-- Max

2017-09-13 18:49:03

by Guenter Roeck

[permalink] [raw]
Subject: Re: xtensa compiler error triggered by 'locking/lockdep: Implement the 'crossrelease' feature'

On Mon, Sep 11, 2017 at 08:19:46PM -0700, Max Filippov wrote:
> On Sun, Sep 10, 2017 at 6:58 PM, Max Filippov <[email protected]> wrote:
> > On Sun, Sep 10, 2017 at 11:31 AM, Guenter Roeck <[email protected]> wrote:
> >> xtensa:allmodconfig fails to build in mainline with compiler errors
> >> as follows.
> >>
> >> drivers/staging/rtl8723bs/core/rtw_ap.c: In function ‘expire_timeout_chk’:
> >> drivers/staging/rtl8723bs/core/rtw_ap.c:442:1: internal compiler error:
> >> in change_address_1, at emit-rtl.c:2126
> >>
> >> drivers/staging/rtl8188eu/core/rtw_ap.c: In function ‘expire_timeout_chk’:
> >> drivers/staging/rtl8188eu/core/rtw_ap.c:445:1: internal compiler error:
> >> in change_address_1, at emit-rtl.c:2150
> >>
> >> I tried gcc 6.3, 6.4, and 7.2; they all have the same problem.
> >>
> >> Bisect points to commit b09be676e0f ("locking/lockdep: Implement the
> >> 'crossrelease' feature").
> >>
> >> The compile error is still seen if I disable CONFIG_LOCKDEP_CROSSRELEASE.
> >> The image builds fine if I disable both CONFIG_RTL8723BS and CONFIG_R8188EU.
> >
> > Thanks for the report. I'll look at the compiler.
>
> There was a bug in the xtensa gcc backend, now fixed. See
> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82181
>
xtensa:allmodconfig builds fine with patched gcc-7.2.0.

Thanks a lot for the quick fix!

Guenter