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-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2006-03-01 06:18:49 +00:00
2002-07-17 00:34:35 +00:00
2002-06-30 07:17:02 +00:00
2002-07-17 00:34:35 +00:00
2002-07-17 00:34:35 +00:00
2002-07-17 00:34:35 +00:00
2002-06-30 07:17:02 +00:00
2001-09-06 01:03:05 +00:00
2001-12-21 10:16:16 +00:00
2001-12-21 10:16:16 +00:00
2001-12-21 10:16:16 +00:00
2001-09-06 01:03:05 +00:00
2017-08-31 16:59:37 +02:00
2017-08-13 21:11:54 +02:00
2005-12-14 08:43:25 +00:00
2017-08-31 16:59:37 +02:00
2017-01-01 00:14:16 +00:00
2017-11-27 11:37:19 +01:00
2017-01-01 00:14:16 +00:00
2017-08-31 16:59:37 +02:00
2017-11-27 11:37:19 +01:00
2017-01-01 00:14:16 +00:00
2017-08-31 16:59:37 +02:00
2017-01-01 00:14:16 +00:00
2017-08-13 21:11:54 +02:00
2017-01-01 00:14:16 +00:00
2017-08-10 16:54:57 +02:00
2017-08-31 16:59:37 +02:00
2017-11-27 11:37:19 +01:00
2017-01-01 00:14:16 +00:00
2017-11-28 09:57:00 -08:00
2017-06-07 11:11:40 +05:30
2017-08-14 15:08:48 +02:00
2017-10-01 16:09:38 -07:00
2017-08-31 16:59:37 +02:00
2017-11-28 09:57:00 -08:00
2017-01-01 00:14:16 +00:00
2017-08-31 16:59:37 +02:00
2017-01-01 00:14:16 +00:00
2017-04-09 23:34:33 +00:00
2017-06-08 12:52:42 -07:00
2017-08-31 16:59:37 +02:00
2017-08-31 16:59:37 +02:00
2017-11-27 11:37:19 +01:00
2017-01-01 00:14:16 +00:00
2017-08-31 16:59:37 +02:00
2017-01-01 00:14:16 +00:00
2017-08-31 16:59:37 +02:00
2017-06-14 10:47:25 +09:30
2005-12-14 08:43:25 +00:00
2017-01-01 00:14:16 +00:00
2017-11-27 11:37:19 +01:00
2017-11-13 08:02:52 -08: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-08-31 16:59:37 +02:00
2017-08-31 16:59:37 +02:00
2005-12-14 08:43:25 +00:00
2017-05-17 13:11:55 +05:30
2017-09-27 02:44:09 +05:30
2017-06-30 22:58:39 +05:30
2017-12-05 17:48:48 -02:00
2017-01-01 00:14:16 +00: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-08-31 16:59:37 +02:00
2017-08-18 08:50:42 -07:00
2017-01-01 00:14:16 +00:00
2016-01-07 04:03:21 -05:00
2017-03-02 17:28:41 +01:00
2009-06-03 16:21:40 -07:00
2009-06-03 16:21:40 -07:00
2016-12-26 10:08:41 +01:00
2009-06-03 16:21:40 -07:00
2009-06-22 15:07:40 -07:00
2009-06-22 15:07:40 -07:00
2013-06-05 20:44:03 +00:00
2009-06-03 16:21:40 -07:00
2009-06-03 16:21:40 -07:00
2009-06-03 16:21:40 -07:00
2009-06-03 16:21:40 -07:00
2009-06-03 16:21:40 -07:00
2009-06-22 15:07:40 -07:00
2013-06-05 20:44:03 +00:00
2009-06-03 16:21:40 -07:00
2009-06-03 16:21:40 -07:00
2009-10-30 00:48:54 -07:00
2009-06-03 16:21:40 -07:00
2009-06-03 16:21:40 -07:00
2009-06-03 16:21:40 -07:00
2009-11-06 09:30:56 -08:00
2009-06-03 16:21:40 -07:00
2009-06-03 16:21:40 -07:00
2009-06-03 16:21:40 -07:00
2009-10-30 00:48:54 -07:00
2009-06-22 15:07:40 -07:00
2009-06-22 15:07:40 -07:00
2009-06-22 15:07:40 -07:00
2009-06-22 15:07:40 -07:00
2009-06-22 15:07:40 -07:00
2016-12-26 10:08:41 +01:00
2016-12-26 10:08:41 +01:00
2009-06-22 15:07:40 -07:00
2009-06-22 15:07:40 -07:00
2009-06-22 15:07:40 -07:00
2009-06-22 15:07:40 -07:00
2016-12-26 10:08:41 +01:00
2009-10-30 00:48:54 -07:00
2016-12-26 10:08:41 +01:00
2009-06-22 15:07:40 -07:00
2017-01-01 00:14:16 +00:00
2004-04-21 18:58:31 +00:00
2017-10-30 15:48:33 +01:00
2017-08-16 15:59:55 +02:00
2017-01-01 00:14:16 +00:00
2017-06-27 17:52:42 +00:00
2017-11-27 11:37:19 +01:00
2006-03-01 06:18:49 +00:00
2006-03-01 06:18:49 +00:00
2012-01-07 23:57:22 -05:00
2006-03-01 06:18:49 +00:00
2017-04-05 10:34:58 -03:00
2003-01-12 07:52:53 +00:00
2003-01-12 07:52:53 +00:00
2003-01-12 07:52:53 +00:00
2003-01-12 10:11:16 +00:00
2017-04-05 10:34:58 -03:00
2002-02-10 22:40:17 +00:00
2002-03-03 19:43:30 +00:00
2011-02-25 20:49:48 -05:00
2017-04-05 10:34:58 -03:00
2005-03-19 08:04:37 +00:00
2005-12-27 22:50:12 +00:00
2005-03-19 08:04:37 +00:00
2005-03-19 08:04:37 +00:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:26:24 +00:00
2017-11-28 09:57:00 -08:00
2017-01-01 00:14:16 +00:00
2001-09-08 17:45:32 +00:00
2013-08-21 19:48:48 +02:00
2001-09-22 15:44:07 +00:00
2001-05-22 23:55:23 +00:00
2001-06-22 13:50:51 +00:00
2001-05-22 23:55:23 +00:00
2001-06-22 13:50:51 +00:00
2001-09-22 15:44:35 +00:00
2003-01-12 10:11:16 +00:00
2001-10-01 00:14:14 +00:00
2001-10-01 00:14:14 +00:00
2001-10-01 00:14:14 +00:00
2001-10-01 00:14:14 +00:00
2001-10-01 00:14:14 +00:00
2002-04-15 17:10:22 +00:00
2002-04-15 17:10:22 +00:00
2002-04-15 17:10:22 +00:00
2002-12-30 20:25:40 +00:00
2002-12-30 20:25:40 +00:00
2002-12-30 20:25:40 +00:00
2002-12-30 20:25:40 +00:00
2003-01-12 10:11:16 +00:00
2003-01-12 10:11:16 +00:00
2003-01-12 10:11:16 +00:00
2003-01-12 10:11:16 +00:00
2013-08-21 19:48:48 +02:00
2001-12-21 10:16:16 +00:00
2001-12-21 10:16:16 +00:00
2001-05-22 22:30:18 +00:00
2012-07-27 14:03:20 +01:00
2017-09-10 17:39:39 +02:00
2017-10-03 01:55:12 -07:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2010-12-24 20:14:37 -05:00
2017-03-01 20:33:46 -05:00
2017-01-11 13:57:59 +00:00
2017-01-01 00:26:24 +00:00
2017-01-01 00:26:24 +00:00
2017-01-01 00:14:16 +00:00
2005-03-06 00:08:10 +00:00
2017-06-14 10:47:25 +09:30
2013-06-05 20:44:03 +00:00
2012-07-17 11:30:58 +00:00
2017-11-03 14:40:28 +00:00
2017-08-31 16:59:37 +02:00
2017-04-05 10:34:58 -03:00
2017-04-05 10:34:58 -03:00
2017-04-05 10:34:58 -03:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2005-02-14 21:25:50 +00:00
2012-11-16 07:40:38 -08:00
2002-11-07 22:28:16 +00:00
2002-11-07 22:28:16 +00:00
2002-11-07 22:28:16 +00:00
2012-11-16 07:40:38 -08:00
2002-11-07 22:28:16 +00:00
2003-01-27 21:03:22 +00:00
2003-01-27 21:03:22 +00:00
2005-07-07 23:00:02 +00:00
2005-07-07 23:00:02 +00:00
2005-07-07 23:00:02 +00:00
2005-07-07 23:00:02 +00:00
2005-07-07 23:00:02 +00:00
2005-01-06 22:40:27 +00:00
2017-04-05 10:34:58 -03:00
2012-11-14 15:44:40 -08:00
2017-04-05 10:34:58 -03:00
2017-04-05 10:34:58 -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-04-05 10:34:58 -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-02-16 17:33:18 -05:00
2014-02-25 13:18:15 -05:00
2014-02-25 13:18:15 -05:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-04-05 10:34:58 -03:00
2017-09-26 13:50:01 -07:00
2017-04-05 10:34:58 -03:00
2004-09-23 07:45:38 +00:00
2004-09-23 07:45:38 +00:00
2004-09-23 07:45:38 +00:00
2017-04-05 10:34:58 -03:00
2017-04-05 10:34:58 -03:00
2017-04-05 10:34:58 -03:00
2004-10-27 20:27:40 +00:00
2017-04-05 10:34:58 -03:00
2017-04-05 10:34:58 -03:00
2017-04-05 14:09:38 -07:00
2017-04-05 10:34:58 -03:00
2017-01-01 00:14:16 +00:00
2017-04-05 10:34:58 -03:00
2017-05-11 19:27:59 -04:00
2017-03-07 20:52:04 +05:30
2003-09-23 12:07:26 +00:00
2017-04-05 10:34:58 -03:00
2017-04-05 10:34:58 -03:00
2017-04-05 10:34:58 -03:00
2017-04-05 10:34:58 -03:00
2017-04-05 10:34:58 -03:00
2017-01-01 00:14:16 +00:00
2011-08-22 16:08:16 -04:00
2011-08-22 16:08:16 -04:00
2011-01-19 16:00:11 -05:00
2011-01-19 16:00:11 -05:00
2011-01-19 16:00:11 -05:00
2011-01-19 16:00:11 -05:00
2011-01-19 16:00:11 -05:00
2011-01-19 16:00:11 -05:00
2011-01-19 16:00:11 -05:00
2011-01-19 16:00:11 -05:00
2017-04-05 10:34:58 -03:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2012-10-20 16:16:59 -07:00
2017-04-05 10:34:58 -03:00
2017-04-05 10:34:58 -03:00
2017-10-04 15:40:49 -07:00
2017-10-04 15:40:49 -07:00
2017-04-05 10:34:58 -03:00
2015-08-11 10:13:22 +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-04-05 10:34:58 -03:00
2015-07-07 11:06:56 -07:00
2015-07-07 11:06:56 -07:00
2015-07-07 11:06:56 -07:00
2017-04-05 10:34:58 -03:00
2017-04-05 10:34:58 -03:00
2017-01-01 00:14:16 +00:00
2017-04-05 10:34:58 -03:00
2011-01-19 16:00:11 -05:00
2011-01-19 16:00:11 -05:00
2011-01-19 16:00:11 -05:00
2011-01-19 16:00:11 -05:00
2011-01-19 16:00:11 -05:00
2011-01-19 16:00:11 -05:00
2017-04-05 10:34:58 -03:00
2017-04-05 10:34:58 -03:00
2017-01-01 00:14:16 +00:00
2004-07-16 17:56:45 +00:00
2017-04-05 10:34:58 -03:00
2017-04-05 10:34:58 -03:00
2017-04-05 10:34:58 -03:00
2015-11-14 12:00:38 -08:00
2017-04-05 10:34:58 -03:00
2017-04-05 10:34:58 -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
2013-09-23 00:52:09 -04:00
2017-04-05 10:34:58 -03:00
2017-04-05 10:34:58 -03:00
2012-01-27 15:05:19 -05:00
2012-01-27 15:05:19 -05:00
2017-01-01 00:14:16 +00:00
2005-06-26 18:14:26 +00:00
2017-04-05 10:34:58 -03:00
2017-04-05 10:34:58 -03:00
2017-09-30 01:39:32 -07:00
2002-08-28 10:42:59 +00:00
2017-04-05 10:34:58 -03:00
2002-08-28 10:42:59 +00:00
2017-04-05 10:34:58 -03:00
2017-04-05 10:34:58 -03:00
2017-04-05 10:34:58 -03:00
2017-04-05 10:34:58 -03:00
2017-04-05 10:34:58 -03:00
2017-04-05 10:34:58 -03:00
2017-04-05 10:34:58 -03:00
2002-10-22 06:22:38 +00:00
2017-04-05 10:34:58 -03:00
2017-04-05 10:34:58 -03:00
2013-10-18 19:45:36 +05:30
2017-04-05 10:34:58 -03:00
2017-04-05 10:34:58 -03:00
2017-04-05 10:34:58 -03:00
2017-04-05 10:34:58 -03:00
2017-04-05 10:34:58 -03:00
2017-04-05 10:34:58 -03:00
2017-04-05 10:34:58 -03:00
2017-04-05 10:34:58 -03:00
2017-04-05 10:34:58 -03:00
2011-05-14 21:25:43 -04:00
2011-05-14 21:25:43 -04:00
2011-05-14 21:25:43 -04:00
2017-04-05 10:34:58 -03:00
2017-04-05 10:34:58 -03:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2015-06-02 16:55:36 -07:00
2017-04-05 10:34:58 -03:00
2015-05-06 13:32:18 -07:00
2015-05-06 13:32:18 -07:00
2015-06-02 16:55:36 -07:00
2017-04-05 10:34:58 -03:00
2013-10-18 19:45:36 +05:30
2013-10-18 19:45:36 +05:30
2013-10-18 19:45:36 +05:30
2013-10-18 19:45:36 +05:30
2013-10-18 19:45:36 +05:30
2013-10-18 19:45:36 +05:30
2011-09-10 14:34:15 -04:00
2011-09-10 14:34:15 -04:00
2011-09-10 14:34:15 -04:00
2003-04-17 19:19:29 +00:00
2011-09-10 14:34:15 -04:00
2011-09-10 14:34:15 -04:00
2013-10-18 19:45:36 +05:30
2013-10-18 19:45:36 +05:30
2013-10-18 19:45:36 +05:30
2003-07-24 20:07:00 +00:00
2005-03-20 22:25:59 +00:00
2011-09-10 14:34:15 -04:00
2013-10-18 19:45:36 +05:30
2013-10-18 19:45:36 +05:30
2008-10-17 15:24:10 +00:00
2008-10-17 15:24:10 +00:00
2008-10-31 20:50:16 +00:00
2017-04-05 10:34:58 -03:00
2015-10-19 22:34:20 +00:00
2015-10-19 22:34:20 +00:00
2017-04-05 10:34:58 -03:00
2015-10-19 22:34:20 +00:00
2015-10-19 22:34:20 +00:00
2012-01-25 16:50:17 +00:00
2011-03-10 12:51:33 -05:00
2012-01-25 16:50:17 +00:00
2012-01-25 16:50:17 +00:00
2012-01-25 16:50:17 +00:00
2011-05-12 21:59:09 -04:00
2014-12-16 10:26:48 +01:00
2006-03-01 06:18:49 +00:00
2005-03-03 08:28:23 +00:00
2005-03-03 08:28:23 +00:00
2005-03-03 08:28:23 +00:00
2005-03-03 08:28:23 +00:00
2005-03-06 00:08:10 +00:00
2005-03-18 10:54:53 +00:00
2005-03-18 10:54:53 +00:00
2005-03-18 10:54:53 +00:00
2005-03-18 10:54:53 +00:00
2005-03-18 10:54:53 +00:00
2005-03-18 10:54:53 +00:00
2005-04-27 01:39:11 +00:00
2005-04-27 01:39:11 +00:00
2005-04-27 01:39:11 +00:00
2005-04-27 01:39:11 +00:00
2006-09-19 14:42:12 +00:00
2006-09-19 14:42:12 +00:00
2006-09-19 14:42:12 +00:00
2011-08-24 09:32:13 +02:00
2011-08-24 09:32:13 +02:00
2011-08-24 09:32:13 +02:00
2011-08-24 09:32:13 +02:00
2011-08-24 09:32:13 +02:00
2006-03-01 06:18:49 +00:00
2017-08-10 16:54:57 +02:00
2017-04-05 10:34:58 -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
2003-03-29 03:46:03 +00:00