Thread (8 messages) flat view 8 messages, 4 authors, 2021-11-18

Re: Bringing rseq back into glibc

From: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Date: 2021-11-18 19:41:37

----- On Nov 18, 2021, at 1:48 PM, Cristian Rodríguez crrodriguez@opensuse.org wrote:
On Thu, Nov 18, 2021 at 7:17 AM Florian Weimer via Libc-alpha
[off-list ref] wrote:
quoted
4. Add public symbols __rseq_abi_offset, __rseq_abi_size (currently 32
   or 0), __rseq_abi_flags (currently 0).  __rseq_abi_offset is the
   offset to add to the thread pointer (see __builtin_thread_pointer) to
   get to the rseq area.  They will be public ABI symbols.  These
   variables are initialized before user code runs, and changing the
   results in undefined behavior.
Why not then __get_rseq_whatwever functions and not variables ? or
maybe writing to these variables results in a compiler or linker error
instead of UB ?
rseq critical sections cannot issue function calls, and also function calls
are noticeably expensive compared to an rseq critical section. So all users
would end up needing to make a local copy of the information fetched by those
getters.

So rather than require all those extra per-user copies, I suspect exposing
a single copy through public glibc symbols is more efficient.

The downside is indeed that writing to those variables is UB.

Thanks,

Mathieu

-- 
Mathieu Desnoyers
EfficiOS Inc.
http://www.efficios.com
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help