Rogerio Alves
07ed18d26a
Add elision tunables
...
This patch adds several new tunables to control the behavior of
elision on supported platforms[1]. Since elision now depends
on tunables, we should always *compile* with elision enabled,
and leave the code disabled, but available for runtime
selection. This gives us *much* better compile-time testing of
the existing code to avoid bit-rot[2].
Tested on ppc, ppc64, ppc64le, s390x and x86_64.
[1] This part of the patch was initially proposed by
Paul Murphy but was "staled" because the framework have changed
since the patch was originally proposed:
https://patchwork.sourceware.org/patch/10342/
[2] This part of the patch was inititally proposed as a RFC by
Carlos O'Donnell. Make sense to me integrate this on the patch:
https://sourceware.org/ml/libc-alpha/2017-05/msg00335.html
* elf/dl-tunables.list: Add elision parameters.
* manual/tunables.texi: Add entries about elision tunable.
* sysdeps/unix/sysv/linux/powerpc/elision-conf.c:
Add callback functions to dynamically enable/disable elision.
Add multiple callbacks functions to set elision parameters.
Deleted __libc_enable_secure check.
* sysdeps/unix/sysv/linux/s390/elision-conf.c: Likewise.
* sysdeps/unix/sysv/linux/x86/elision-conf.c: Likewise.
* configure: Regenerated.
* configure.ac: Option enable_lock_elision was deleted.
* config.h.in: ENABLE_LOCK_ELISION flag was deleted.
* config.make.in: Remove references to enable_lock_elision.
* manual/install.texi: Elision configure option was removed.
* INSTALL: Regenerated to remove enable_lock_elision.
* nptl/Makefile:
Disable elision so it can verify error case for destroying a mutex.
* sysdeps/powerpc/nptl/elide.h:
Cleanup ENABLE_LOCK_ELISION check.
Deleted macros for the case when ENABLE_LOCK_ELISION was not defined.
* sysdeps/s390/configure: Regenerated.
* sysdeps/s390/configure.ac: Remove references to enable_lock_elision..
* nptl/tst-mutex8.c:
Deleted all #ifndef ENABLE_LOCK_ELISION from the test.
* sysdeps/powerpc/powerpc32/sysdep.h:
Deleted all ENABLE_LOCK_ELISION checks.
* sysdeps/powerpc/powerpc64/sysdep.h: Likewise.
* sysdeps/powerpc/sysdep.h: Likewise.
* sysdeps/s390/nptl/bits/pthreadtypes-arch.h: Likewise.
* sysdeps/unix/sysv/linux/powerpc/force-elision.h: Likewise.
* sysdeps/unix/sysv/linux/s390/elision-conf.h: Likewise.
* sysdeps/unix/sysv/linux/s390/force-elision.h: Likewise.
* sysdeps/unix/sysv/linux/s390/lowlevellock.h: Likewise.
* sysdeps/unix/sysv/linux/s390/Makefile: Remove references to
enable-lock-elision.
Reviewed-by: Tulio Magno Quites Machado Filho <tuliom@linux.vnet.ibm.com>
2017-12-05 17:48:48 -02:00
..
2017-12-05 15:20:35 +01:00
2017-12-05 15:20:35 +01:00
2017-12-05 15:20:35 +01:00
2017-12-05 15:20:35 +01:00
2017-09-04 13:38:51 -07:00
2017-12-05 15:20:35 +01:00
2017-12-05 15:20:35 +01:00
2017-12-05 15:20:35 +01:00
2017-10-01 16:05:28 -07:00
2017-12-05 15:20:35 +01:00
2017-12-05 15:20:35 +01:00
2017-12-05 15:20:35 +01:00
2017-11-16 17:52:43 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-12-05 15:20:35 +01:00
2017-12-05 17:48:48 -02:00
2017-12-05 17:48:48 -02:00
2017-01-01 00:14:16 +00:00
2017-12-05 15:20:35 +01:00
2017-12-05 15:20:35 +01:00
2017-08-09 22:58:45 +00:00
2017-12-05 15:20:35 +01:00
2017-10-01 15:51:11 -07:00
2017-12-05 17:48:48 -02:00
2017-12-05 15:20:35 +01:00
2017-01-01 00:14:16 +00:00
2017-06-08 13:58:17 -04:00
2017-05-09 21:59:36 +00:00
2017-03-09 15:22:06 +01:00
2017-07-24 11:21:07 -03:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-08-31 15:59:06 +02:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-08-18 18:38:55 -03:00
2017-08-18 18:38:55 -03:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-08-18 18:38:55 -03:00
2017-01-01 00:14:16 +00:00
2017-03-09 15:22:06 +01:00
2017-05-11 17:27:27 -03:00
2017-05-11 17:27:27 -03:00
2017-01-28 19:21:44 -05:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-08-13 21:11:38 +02:00
2017-06-08 12:52:42 -07:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-08-31 16:59:37 +02:00
2017-08-31 16:59:37 +02:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-11-15 14:40:17 -02:00
2017-08-07 19:55:34 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-08-31 16:10:34 -03:00
2017-01-01 00:14:16 +00:00
2017-05-18 18:06:47 -03:00
2017-09-19 15:50:38 +00:00
2017-08-28 11:58:52 +02:00
2017-08-18 18:38:55 -03:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-10-01 15:08:32 -07:00
2017-10-01 15:08:32 -07:00
2017-05-18 18:06:47 -03:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-08-31 16:07:52 +02:00
2017-08-28 11:58:52 +02:00
2017-09-01 17:14:43 +00:00
2017-01-01 00:14:16 +00:00
2017-08-31 15:59:07 +02:00
2017-08-31 16:02:40 +02:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-08-18 18:38:55 -03:00
2017-01-01 00:14:16 +00:00
2017-08-18 18:38:55 -03:00
2017-08-18 18:38:55 -03:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-10-01 16:08:42 -07:00
2017-01-01 00:14:16 +00:00
2017-10-01 18:00:07 -07:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-10-01 16:12:24 -07:00
2017-10-01 16:12:24 -07:00
2017-10-01 15:57:21 -07:00
2017-01-01 00:14:16 +00:00
2017-09-25 18:04:16 -07:00
2017-10-01 18:02:10 -07:00
2017-09-25 18:04:16 -07:00
2017-09-25 18:04:16 -07:00
2017-09-08 16:34:02 +02:00
2017-09-08 16:34:02 +02:00
2017-08-18 18:38:55 -03:00
2017-11-15 08:58:48 -08:00
2017-09-27 17:18:32 -07:00
2017-01-01 00:14:16 +00:00
2017-10-01 15:08:32 -07:00
2017-10-01 15:08:32 -07:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2016-11-22 09:59:12 -08:00
2017-01-01 00:14:16 +00:00
2017-11-27 17:14:29 +01:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:26:24 +00:00
2017-01-01 00:14:16 +00:00
2017-08-18 18:38:55 -03:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-12-05 15:20:35 +01:00
2017-08-18 18:38:55 -03:00
2017-11-27 17:14:29 +01:00
2017-06-23 17:38:17 -03:00
2017-08-14 10:35:14 -03:00
2017-08-14 10:35:14 -03:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-08-18 18:38:55 -03:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-05-18 18:06:47 -03:00
2017-05-18 18:06:47 -03:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-05-18 18:06:47 -03:00
2017-08-22 14:25:08 -03:00
2017-08-13 21:11:28 +02:00
2017-10-01 15:56:27 -07:00
2017-08-31 16:10:34 -03:00
2017-07-24 11:21:07 -03:00
2017-05-20 19:04:43 -04:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-10-01 15:07:23 -07:00
2017-09-25 18:04:16 -07:00
2017-08-17 16:50:35 -03:00
2017-05-18 18:06:47 -03:00
2017-08-17 16:50:35 -03:00
2017-08-18 16:30:05 -03:00
2017-08-18 16:30:05 -03:00
2017-01-01 00:14:16 +00:00
2017-08-17 10:18:15 +02:00
2017-01-01 00:14:16 +00:00
2017-10-01 15:18:25 -07:00
2017-08-22 14:25:03 -03:00
2017-01-01 00:14:16 +00:00
2017-12-05 15:20:35 +01:00
2017-12-05 15:20:35 +01:00
2017-12-05 15:20:35 +01:00
2017-05-03 10:36:01 -03:00
2017-10-01 18:06:04 -07:00
2017-02-06 10:21:55 -02:00
2017-10-01 18:06:04 -07:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-05-02 14:57:40 -03:00
2017-05-02 14:57:40 -03:00
2017-08-08 09:59:46 -03:00
2017-08-31 18:52:00 +02:00
2017-08-08 09:59:46 -03:00
2017-08-31 18:52:00 +02:00
2017-05-09 14:05:09 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-08-18 18:38:55 -03:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-08-18 18:38:55 -03:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-06-07 17:37:59 +02:00
2017-05-31 17:35:46 -03:00
2017-05-02 14:57:40 -03:00
2017-08-08 09:59:46 -03:00
2017-08-31 18:52:00 +02:00
2017-08-08 09:59:46 -03:00
2017-08-31 18:52:00 +02:00
2017-01-01 00:14:16 +00:00
2017-08-18 10:31:16 -03:00
2017-01-01 00:14:16 +00:00
2017-10-01 15:51:11 -07:00
2017-01-01 00:14:16 +00:00
2017-10-01 15:54:10 -07:00
2017-01-01 00:14:16 +00:00
2017-03-09 15:22:06 +01:00
2017-03-09 15:22:06 +01:00
2017-05-09 21:59:36 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-10-01 18:03:59 -07:00
2017-05-03 10:36:36 -03:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-03-09 15:22:06 +01:00
2017-05-09 21:59:36 +00:00
2017-01-01 00:14:16 +00:00
2017-03-09 15:22:06 +01:00
2017-03-28 12:29:27 -03:00
2017-03-28 12:29:27 -03:00
2017-03-28 12:29:27 -03:00
2017-03-28 12:29:27 -03:00
2017-01-01 00:14:16 +00:00
2017-03-28 12:29:27 -03:00
2017-03-28 12:29:27 -03:00
2017-03-28 12:29:27 -03:00
2017-03-28 12:29:27 -03:00
2017-10-01 17:46:54 -07:00
2017-10-01 17:46:54 -07:00
2017-01-01 00:14:16 +00:00
2017-10-01 16:12:24 -07:00
2017-03-28 12:29:27 -03:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-10-31 17:49:18 -02:00
2017-11-06 17:37:57 -02:00
2017-01-01 00:14:16 +00:00
2017-05-20 19:04:43 -04:00
2017-01-01 00:14:16 +00:00
2017-05-18 18:06:47 -03:00
2017-11-06 17:37:57 -02:00
2017-11-23 11:20:53 +01:00
2017-11-06 17:37:57 -02:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-10-23 13:31:26 -02:00
2017-01-01 00:14:16 +00:00
2017-05-18 18:06:47 -03:00
2017-01-01 00:14:16 +00:00
2017-10-01 15:08:32 -07:00
2017-10-01 15:08:32 -07:00
2017-01-01 00:14:16 +00:00
2017-11-16 17:51:54 +00:00
2017-12-05 15:20:35 +01:00
2017-08-18 18:38:55 -03:00
2017-01-01 00:14:16 +00:00
2017-10-11 14:27:24 -03:00
2017-01-01 00:14:16 +00:00
2017-03-09 15:22:06 +01:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-10-01 17:48:24 -07:00
2017-01-01 00:14:16 +00:00
2017-06-23 17:38:17 -03:00
2017-05-18 18:06:47 -03:00
2017-11-02 13:55:51 +01:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-06-07 14:05:42 +02:00
2017-06-26 17:52:20 -03:00
2017-03-01 20:32:50 -05:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-11-23 10:00:40 +01:00
2017-11-27 17:14:29 +01:00
2017-01-01 00:14:16 +00:00
2017-12-05 15:20:35 +01:00
2017-01-01 00:14:16 +00:00
2017-05-08 16:44:54 +00:00
2017-06-20 20:32:50 -04:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-02-16 17:33:18 -05:00
2017-08-28 11:58:52 +02:00
2017-10-20 04:10:15 +02:00
2017-10-20 04:10:15 +02:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-11-18 14:34:46 +01:00
2017-11-15 20:47:12 +01:00
2017-11-15 20:47:12 +01:00
2017-11-15 20:47:07 +01:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-12-05 15:20:35 +01:00
2017-05-18 18:06:47 -03:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-08-21 15:37:45 -03:00
2017-08-18 10:53:47 -03:00
2017-10-01 15:54:10 -07:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00