Re: [tip:core/rseq] rseq/selftests/x86: Work around bogus gcc-8 optimisation
From: Mathieu Desnoyers
Date: Fri Apr 19 2019 - 17:13:28 EST
----- 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.
Thanks,
Mathieu
--
Mathieu Desnoyers
EfficiOS Inc.
http://www.efficios.com