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?