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
> wrote:
>
>> 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
>>> 8-20180414-1ubuntu2)
>>> - 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
> shortly.
>
>>
>> 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:

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90193

Thanks,

Mathieu


--
Mathieu Desnoyers
EfficiOS Inc.
http://www.efficios.com