Re: [tip:core/rseq] rseq/selftests/x86: Work around bogus gcc-8 optimisation
From: Mathieu Desnoyers
Date: Fri Apr 19 2019 - 22:50:10 EST
----- On Apr 19, 2019, at 5:13 PM, Mathieu Desnoyers mathieu.desnoyers@xxxxxxxxxxxx wrote:
> ----- On Apr 19, 2019, at 2:53 PM, Linus Torvalds torvalds@xxxxxxxxxxxxxxxxxxxx
>> On Fri, Apr 19, 2019 at 11:46 AM tip-bot for Mathieu Desnoyers
>> <tipbot@xxxxxxxxx> wrote:
>>> rseq/selftests/x86: Work around bogus gcc-8 optimisation
>>> At least the following versions of gcc-8:
>>> - gcc version 8.0.1 20180414 (experimental) [trunk revision 259383] (Ubuntu
>>> - gcc 8.2.0-7ubuntu1 (Ubuntu 18.10 (Cosmic)),
>>> generate broken assembler with asm goto that have a thread-local storage
>>> "m" input operand on both x86-32 and x86-64. For instance:
>> Is there a gcc bugzilla for this? Shouldn't that be mentioned here?
> My google-fu did not find any match, so I don't think so. I'll open one
>> Also, we use "asm goto" together with "m" all the time in the kernel.
>> In fact, it's the most common case, with the RMWcc ops being generated
>> with that. I realize that we don't use the gcc thread-local storage
>> for them (we often do use our *own* thread-local storage), but it
>> would be good to have that gcc bugzilla to see why it can only affect
>> those user level "__thread" cases.
> Indeed, it would be good to investigate and understand all problematic
> scenarios triggering this bug.
I've opened a ticket on gcc's bugzilla: