From: Mathieu Desnoyers Date: Wed, 18 Oct 2017 20:55:18 +0000 (-0400) Subject: Use initial-exec tls model X-Git-Tag: v0.11.0~51 X-Git-Url: https://git.liburcu.org/?a=commitdiff_plain;h=6fd172f599e8d798e68974a786dd930d876f182e;hp=6fd172f599e8d798e68974a786dd930d876f182e;p=userspace-rcu.git Use initial-exec tls model The initial-exec tls model removes requirement on performing memory allocation the first time a tls variable is touched by any given thread. This is needed to ensure usage of the TLS from a signal handler works fine. Given that the link-editor figures out the right model to use at runtime, we can change the tls model without changing the soname major version. This also brings interesting speedups over the GD model. This does not affects TLS accesses performed by executables, but does affect TLS accesses performed by libraries. * Executable (no change) ./test_urcu 1 0 10 SUMMARY /media/truecrypt1/compudj/doc/userspace-rcu/tests/benchmark/.libs/test_urcu testdur 10 nr_readers 1 rdur 0 wdur 0 nr_writers 0 wdelay 0 nr_reads 4420328692 nr_writes 0 nr_ops 4420328692 (with initial-exec) ./test_urcu 1 0 10 SUMMARY /media/truecrypt1/compudj/doc/userspace-rcu/tests/benchmark/.libs/test_urcu testdur 10 nr_readers 1 rdur 0 wdur 0 nr_writers 0 wdelay 0 nr_reads 4424925864 nr_writes 0 nr_ops 4424925864 * Library (with global-dynamic) ./test_urcu_dynamic_link 1 0 10 SUMMARY /media/truecrypt1/compudj/doc/userspace-rcu/tests/benchmark/.libs/test_urcu_dynamic_link testdur 10 nr_readers 1 rdur 0 wdur 0 nr_writers 0 wdelay 0 nr_reads 573209491 nr_writes 0 nr_ops 573209491 (with initial-exec) ./test_urcu_dynamic_link 1 0 10 SUMMARY /media/truecrypt1/compudj/doc/userspace-rcu/tests/benchmark/.libs/test_urcu_dynamic_link testdur 10 nr_readers 1 rdur 0 wdur 0 nr_writers 0 wdelay 0 nr_reads 1088836185 nr_writes 0 nr_ops 1088836185 Link: https://docs.oracle.com/cd/E23824_01/html/819-0690/chapter8-20.html Link: https://gcc.gnu.org/onlinedocs/gcc/Common-Variable-Attributes.html#Common-Variable-Attributes Signed-off-by: Mathieu Desnoyers ---