Restartable Sequences system call merged into Linux

Stefan Liebler stli@linux.ibm.com
Fri Jul 13 13:22:00 GMT 2018


On 07/12/2018 10:10 AM, Szabolcs Nagy wrote:
> On 11/07/18 17:03, Stefan Liebler wrote:
>> On 06/11/2018 09:49 PM, Mathieu Desnoyers wrote:
>>> Hi!
>>>
>>> Good news! The restartable sequences (rseq) system call is now merged 
>>> into the master
>>> branch of the Linux kernel within the 4.18 merge window:
>>>
>>> https://github.com/torvalds/linux/commit/d82991a8688ad128b46db1b42d5d84396487a508 
>>>
>>>
>>> It would be important to discuss how we should proceed to integrate 
>>> the library part
>>> of rseq (see tools/testing/selftests/rseq/rseq*.{ch}) into glibc, or 
>>> if it should
>>> live in a standalone project.
>>>
>>> It should be noted that there can be only one rseq TLS area 
>>> registered per thread,
>>> which can then be used by many libraries and by the executable, so 
>>> this is a
>>> process-wide (per-thread) resource that we need to manage carefully.
>>>
>>> Thoughts ?
>>>
>>> Thanks!
>>>
>>> Mathieu
>>>
>>>
>> The structs rseq_cs and rseq are aligned to 32 bytes.
>> Please have a look at the bug:
>> "Bug 23403 - Wrong alignment of TLS variables"
>> (https://sourceware.org/bugzilla/show_bug.cgi?id=23403).
>>
>> @Carlos or somebody else:
>> Should this be fixed in the upcoming glibc release?
>>
> 
> i think s390 can implement a hack that increases the internal
> pthread_t alignment to 64 or similar.
> 
> that effectively fixes 2.28 in practice (huge tls alignment
> should be rare).
> 

Yes, this hack would fix it, but on the other side it hides a real bug.
Therefore I prefer Florian's idea that once it is fixed, it should be 
backported.



More information about the Libc-alpha mailing list