diff options
Diffstat (limited to 'nptl/sysdeps/unix/sysv/linux/x86/elision-conf.c')
-rw-r--r-- | nptl/sysdeps/unix/sysv/linux/x86/elision-conf.c | 81 |
1 files changed, 0 insertions, 81 deletions
diff --git a/nptl/sysdeps/unix/sysv/linux/x86/elision-conf.c b/nptl/sysdeps/unix/sysv/linux/x86/elision-conf.c deleted file mode 100644 index e6f5d6d1ab..0000000000 --- a/nptl/sysdeps/unix/sysv/linux/x86/elision-conf.c +++ /dev/null @@ -1,81 +0,0 @@ -/* elision-conf.c: Lock elision tunable parameters. - Copyright (C) 2013-2014 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - <http://www.gnu.org/licenses/>. */ - -#include "config.h" -#include <pthreadP.h> -#include <init-arch.h> -#include <elision-conf.h> -#include <unistd.h> - -/* Reasonable initial tuning values, may be revised in the future. - This is a conservative initial value. */ - -struct elision_config __elision_aconf = - { - /* How often to not attempt to use elision if a transaction aborted - because the lock is already acquired. Expressed in number of lock - acquisition attempts. */ - .skip_lock_busy = 3, - /* How often to not attempt to use elision if a transaction aborted due - to reasons other than other threads' memory accesses. Expressed in - number of lock acquisition attempts. */ - .skip_lock_internal_abort = 3, - /* How often we retry using elision if there is chance for the transaction - to finish execution (e.g., it wasn't aborted due to the lock being - already acquired. */ - .retry_try_xbegin = 3, - /* Same as SKIP_LOCK_INTERNAL_ABORT but for trylock. */ - .skip_trylock_internal_abort = 3, - }; - -/* Set when the CPU supports elision. When false elision is never attempted. - */ - -int __elision_available attribute_hidden; - -/* Force elision for all new locks. This is used to decide whether existing - DEFAULT locks should be automatically upgraded to elision in - pthread_mutex_lock(). Disabled for suid programs. Only used when elision - is available. */ - -int __pthread_force_elision attribute_hidden; - -/* Initialize elison. */ - -static void -elision_init (int argc __attribute__ ((unused)), - char **argv __attribute__ ((unused)), - char **environ) -{ - __elision_available = HAS_RTM; -#ifdef ENABLE_LOCK_ELISION - __pthread_force_elision = __libc_enable_secure ? 0 : __elision_available; -#endif -} - -#ifdef SHARED -# define INIT_SECTION ".init_array" -#else -# define INIT_SECTION ".preinit_array" -#endif - -void (*const __pthread_init_array []) (int, char **, char **) - __attribute__ ((section (INIT_SECTION), aligned (sizeof (void *)))) = -{ - &elision_init -}; |