Login
Log in using an SSO provider:
Fedora Account System
Red Hat Associate
Red Hat Customer
Login using a Red Hat Bugzilla account
Forgot Password
Create an Account
Red Hat Bugzilla – Attachment 1267814 Details for
Bug 1383986
Fedora - Enable lock elision through an environment variable on Fedora for Linux on z Systems (glibc)
Home
New
Search
Simple Search
Advanced Search
My Links
Browse
Requests
Reports
Current State
Search
Tabular reports
Graphical reports
Duplicates
Other Reports
User Changes
Plotly Reports
Bug Status
Bug Severity
Non-Defaults
Product Dashboard
Help
Page Help!
Bug Writing Guidelines
What's new
Browser Support Policy
5.0.4.rh90 Release notes
FAQ
Guides index
User guide
Web Services
Contact
Legal
[?]
This site requires JavaScript to be enabled to function correctly, please enable it.
[patch]
elision-upstream-wip_s390ontop.diff
elision-upstream-wip_s390ontop.diff (text/plain), 6.18 KB, created by
IBM Bug Proxy
on 2017-03-31 11:30:28 UTC
(
hide
)
Description:
elision-upstream-wip_s390ontop.diff
Filename:
MIME Type:
Creator:
IBM Bug Proxy
Created:
2017-03-31 11:30:28 UTC
Size:
6.18 KB
patch
obsolete
>diff --git a/config.make.in b/config.make.in >index d08a462..c60d071 100644 >--- a/config.make.in >+++ b/config.make.in >@@ -97,7 +97,6 @@ build-nscd = @build_nscd@ > use-nscd = @use_nscd@ > build-hardcoded-path-in-tests= @hardcoded_path_in_tests@ > build-pt-chown = @build_pt_chown@ >-enable-lock-elision = @enable_lock_elision@ > have-tunables = @have_tunables@ > > # Build tools. >diff --git a/elf/dl-tunables.list b/elf/dl-tunables.list >index b567d75..97062f9 100644 >--- a/elf/dl-tunables.list >+++ b/elf/dl-tunables.list >@@ -82,7 +82,7 @@ glibc { > type: INT_32 > minval: 0 > maxval: 1 >- is_secure: false >+ security_level: SXID_IGNORE > } > } > } >diff --git a/sysdeps/s390/nptl/bits/pthreadtypes.h b/sysdeps/s390/nptl/bits/pthreadtypes.h >index 48ffdb4..ce898ff 100644 >--- a/sysdeps/s390/nptl/bits/pthreadtypes.h >+++ b/sysdeps/s390/nptl/bits/pthreadtypes.h >@@ -89,23 +89,16 @@ typedef union > binary compatibility with static initializers. */ > int __kind; > #if __WORDSIZE == 64 >-# ifdef ENABLE_LOCK_ELISION > short __spins; > short __elision; > /* Mutex __spins initializer used by PTHREAD_MUTEX_INITIALIZER. */ > # define __PTHREAD_SPINS 0, 0 >-# else >- int __spins; >- /* Mutex __spins initializer used by PTHREAD_MUTEX_INITIALIZER. */ >-# define __PTHREAD_SPINS 0 >-# endif > __pthread_list_t __list; > # define __PTHREAD_MUTEX_HAVE_PREV 1 > #else > unsigned int __nusers; > __extension__ union > { >-# ifdef ENABLE_LOCK_ELISION > struct > { > short __espins; >@@ -115,11 +108,6 @@ typedef union > # define __elision _d.__elision > /* Mutex __spins initializer used by PTHREAD_MUTEX_INITIALIZER. */ > # define __PTHREAD_SPINS { 0, 0 } >-# else >- int __spins; >- /* Mutex __spins initializer used by PTHREAD_MUTEX_INITIALIZER. */ >-# define __PTHREAD_SPINS 0 >-# endif > __pthread_slist_t __list; > }; > #endif >diff --git a/sysdeps/unix/sysv/linux/s390/Makefile b/sysdeps/unix/sysv/linux/s390/Makefile >index 3867c33..28a5cf3 100644 >--- a/sysdeps/unix/sysv/linux/s390/Makefile >+++ b/sysdeps/unix/sysv/linux/s390/Makefile >@@ -18,7 +18,6 @@ sysdep_routines += dl-vdso > endif > > ifeq ($(subdir),nptl) >-ifeq ($(enable-lock-elision),yes) > libpthread-sysdep_routines += elision-lock elision-unlock elision-timed \ > elision-trylock > >@@ -28,4 +27,3 @@ CFLAGS-elision-timed.c = $(elision-CFLAGS) > CFLAGS-elision-trylock.c = $(elision-CFLAGS) > CFLAGS-elision-unlock.c = $(elision-CFLAGS) > endif >-endif >diff --git a/sysdeps/unix/sysv/linux/s390/elision-conf.c b/sysdeps/unix/sysv/linux/s390/elision-conf.c >index ee315ba..868f5e4 100644 >--- a/sysdeps/unix/sysv/linux/s390/elision-conf.c >+++ b/sysdeps/unix/sysv/linux/s390/elision-conf.c >@@ -21,6 +21,7 @@ > #include <elision-conf.h> > #include <unistd.h> > #include <dl-procinfo.h> >+#include <elf/dl-tunables.h> > > /* Reasonable initial tuning values, may be revised in the future. > This is a conservative initial value. */ >@@ -75,9 +76,9 @@ do_set_elision_enable (bool elision_enable) > elision should be disabled or enabled respectively. Availability at > the hardware level will still dictate if the feature is used. */ > void >-DL_TUNABLE_CALLBACK (set_elision_enable) (void *elision_enable) >+DL_TUNABLE_CALLBACK (set_elision_enable) (tunable_val_t *valp) > { >- int32_t elision_enable = *(int32_t *) valp; >+ int32_t elision_enable = (int32_t) valp->numval; > do_set_elision_enable (elision_enable ? true : false); > } > #endif >diff --git a/sysdeps/unix/sysv/linux/s390/elision-conf.h b/sysdeps/unix/sysv/linux/s390/elision-conf.h >index 3143f3b..32f0ed3 100644 >--- a/sysdeps/unix/sysv/linux/s390/elision-conf.h >+++ b/sysdeps/unix/sysv/linux/s390/elision-conf.h >@@ -15,7 +15,6 @@ > 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/>. */ >-#ifdef ENABLE_LOCK_ELISION > #ifndef _ELISION_CONF_H > #define _ELISION_CONF_H 1 > >@@ -41,4 +40,3 @@ extern int __pthread_force_elision attribute_hidden; > #define HAVE_ELISION 1 > > #endif >-#endif >diff --git a/sysdeps/unix/sysv/linux/s390/force-elision.h b/sysdeps/unix/sysv/linux/s390/force-elision.h >index 3ae3bcd..8e1e33e 100644 >--- a/sysdeps/unix/sysv/linux/s390/force-elision.h >+++ b/sysdeps/unix/sysv/linux/s390/force-elision.h >@@ -16,7 +16,6 @@ > License along with the GNU C Library; if not, see > <http://www.gnu.org/licenses/>. */ > >-#ifdef ENABLE_LOCK_ELISION > /* Automatically enable elision for existing user lock kinds. */ > #define FORCE_ELISION(m, s) \ > if (__pthread_force_elision \ >@@ -25,4 +24,3 @@ > mutex->__data.__kind |= PTHREAD_MUTEX_ELISION_NP; \ > s; \ > } >-#endif >diff --git a/sysdeps/unix/sysv/linux/s390/lowlevellock.h b/sysdeps/unix/sysv/linux/s390/lowlevellock.h >index 604137f..45ede6c 100644 >--- a/sysdeps/unix/sysv/linux/s390/lowlevellock.h >+++ b/sysdeps/unix/sysv/linux/s390/lowlevellock.h >@@ -22,12 +22,11 @@ > #include <sysdeps/nptl/lowlevellock.h> > > /* Transactional lock elision definitions. */ >-# ifdef ENABLE_LOCK_ELISION > extern int __lll_timedlock_elision > (int *futex, short *adapt_count, const struct timespec *timeout, int private) > attribute_hidden; > >-# define lll_timedlock_elision(futex, adapt_count, timeout, private) \ >+#define lll_timedlock_elision(futex, adapt_count, timeout, private) \ > __lll_timedlock_elision(&(futex), &(adapt_count), timeout, private) > > extern int __lll_lock_elision (int *futex, short *adapt_count, int private) >@@ -39,12 +38,11 @@ extern int __lll_unlock_elision(int *futex, short *adapt_count, int private) > extern int __lll_trylock_elision(int *futex, short *adapt_count) > attribute_hidden; > >-# define lll_lock_elision(futex, adapt_count, private) \ >+#define lll_lock_elision(futex, adapt_count, private) \ > __lll_lock_elision (&(futex), &(adapt_count), private) >-# define lll_unlock_elision(futex, adapt_count, private) \ >+#define lll_unlock_elision(futex, adapt_count, private) \ > __lll_unlock_elision (&(futex), &(adapt_count), private) >-# define lll_trylock_elision(futex, adapt_count) \ >+#define lll_trylock_elision(futex, adapt_count) \ > __lll_trylock_elision(&(futex), &(adapt_count)) >-# endif /* ENABLE_LOCK_ELISION */ > > #endif /* lowlevellock.h */
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 1383986
:
1209526
|
1250771
| 1267814