diff options
author | Adhemerval Zanella <azanella@linux.vnet.ibm.com> | 2014-11-07 12:34:52 -0500 |
---|---|---|
committer | Adhemerval Zanella <azanella@linux.vnet.ibm.com> | 2015-01-12 06:32:08 -0500 |
commit | 56cf2763819d2f721c98f2b8bcc04a3c673837d3 (patch) | |
tree | 5d2fde37897779f64b83951c1ef99406fd384055 /ChangeLog | |
parent | 4b45943a6f62cfc239e79ad8902f5c7f71fd13ec (diff) | |
download | glibc-56cf2763819d2f721c98f2b8bcc04a3c673837d3.tar glibc-56cf2763819d2f721c98f2b8bcc04a3c673837d3.tar.gz glibc-56cf2763819d2f721c98f2b8bcc04a3c673837d3.tar.bz2 glibc-56cf2763819d2f721c98f2b8bcc04a3c673837d3.zip |
powerpc: abort transaction in syscalls
Linux kernel powerpc documentation states issuing a syscall inside a
transaction is not recommended and may lead to undefined behavior. It
also states syscalls does not abort transactoin neither they run in
transactional state.
To avoid side-effects being visible outside transactions, GLIBC with
lock elision enabled will issue a transaction abort instruction just
before all syscalls if hardware supports hardware transactions.
Diffstat (limited to 'ChangeLog')
-rw-r--r-- | ChangeLog | 17 |
1 files changed, 17 insertions, 0 deletions
@@ -1,5 +1,22 @@ 2014-01-12 Adhemerval Zanella <azanella@linux.vnet.ibm.com> + * sysdeps/powerpc/nptl/tls.h (tcbhead_t): Add tm_capable field. + (TLS_INIT_TP): Add tm_capable initialization. + (TLS_DEFINE_INIT_TP): Likewise. + (THREAD_GET_TM_CAPABLE): New file: get tm_capable field value from + TCB. + (THREAD_SET_TM_CAPABLE): New file: set tm_capable field value in TCB. + * sysdeps/powerpc/nptl/tcb-offsets.sym (TM_CAPABLE): Add field offset + calculation. + * sysdeps/powerpc/powerpc32/sysdep.h (DO_CALL): Abort hardware + transactoion is lock elision is built and TCB tm_capable is set. + * sysdeps/powerpc/powerpc64/sysdep.h (DO_CALL): Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep.h + (INTERNAL_SYSCALL_NCS): Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep.h + (INTERNAL_SYSCALL_NCS): Likewise. + * sysdeps/powerpc/sysdep.h (ABORT_TRANSACTION): New define. + * sysdeps/powerpc/nptl/elide.h: New file: generic lock elision support for powerpc. * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h |