diff options
author | Ulrich Drepper <drepper@redhat.com> | 2007-05-30 04:08:13 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2007-05-30 04:08:13 +0000 |
commit | 0154658d3db3ac2880c44bcc85c6fe47f4bdbb7c (patch) | |
tree | f975159df12f61c47931c808adb95af33cd8aace | |
parent | 4b5e7304ed3cd6da133f82b6daf8c43b76ce5b50 (diff) | |
download | glibc-0154658d3db3ac2880c44bcc85c6fe47f4bdbb7c.zip glibc-0154658d3db3ac2880c44bcc85c6fe47f4bdbb7c.tar.gz glibc-0154658d3db3ac2880c44bcc85c6fe47f4bdbb7c.tar.bz2 |
* sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Checking
whether there are more than one thread makes no sense here since
we only call the slow path if the locks are taken.
* sysdeps/unix/sysv/linux/x86_64/libc-lowlevellock.S: Likewise.
-rw-r--r-- | nptl/ChangeLog | 5 | ||||
-rw-r--r-- | nptl/sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S | 10 | ||||
-rw-r--r-- | nptl/sysdeps/unix/sysv/linux/internaltypes.h | 2 | ||||
-rw-r--r-- | nptl/sysdeps/unix/sysv/linux/x86_64/libc-lowlevellock.S | 10 |
4 files changed, 6 insertions, 21 deletions
diff --git a/nptl/ChangeLog b/nptl/ChangeLog index 9d71dcc..b757f48 100644 --- a/nptl/ChangeLog +++ b/nptl/ChangeLog @@ -1,5 +1,10 @@ 2007-05-29 Ulrich Drepper <drepper@redhat.com> + * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Checking + whether there are more than one thread makes no sense here since + we only call the slow path if the locks are taken. + * sysdeps/unix/sysv/linux/x86_64/libc-lowlevellock.S: Likewise. + * sysdeps/unix/sysv/linux/internaltypes.h: Introduce COND_NWAITERS_SHIFT. * pthread_cond_destroy.c: Use COND_NWAITERS_SHIFT instead of diff --git a/nptl/sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S b/nptl/sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S index f246711..830f628 100644 --- a/nptl/sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S +++ b/nptl/sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S @@ -19,16 +19,6 @@ #include <kernel-features.h> -/* In libc.so we do not unconditionally use the lock prefix. Only if - the application is using threads. */ -#ifndef UP -# define LOCK \ - cmpl $0, %gs:MULTIPLE_THREADS_OFFSET; \ - je 0f; \ - lock; \ -0: -#endif - /* All locks in libc are private. Use the kernel feature if possible. */ #define FUTEX_PRIVATE_FLAG 128 #ifdef __ASSUME_PRIVATE_FUTEX diff --git a/nptl/sysdeps/unix/sysv/linux/internaltypes.h b/nptl/sysdeps/unix/sysv/linux/internaltypes.h index dfd53a0..add20b6 100644 --- a/nptl/sysdeps/unix/sysv/linux/internaltypes.h +++ b/nptl/sysdeps/unix/sysv/linux/internaltypes.h @@ -80,7 +80,7 @@ struct pthread_condattr of bits needed to represent the ID of the clock. COND_NWAITERS_SHIFT is the number of bits reserved for other purposes like the clock. */ #define COND_CLOCK_BITS 1 -#define COND_NWAITERS_SHIFT 8 +#define COND_NWAITERS_SHIFT 1 /* Read-write lock variable attribute data structure. */ diff --git a/nptl/sysdeps/unix/sysv/linux/x86_64/libc-lowlevellock.S b/nptl/sysdeps/unix/sysv/linux/x86_64/libc-lowlevellock.S index 21bf58c..3265eee 100644 --- a/nptl/sysdeps/unix/sysv/linux/x86_64/libc-lowlevellock.S +++ b/nptl/sysdeps/unix/sysv/linux/x86_64/libc-lowlevellock.S @@ -19,16 +19,6 @@ #include <kernel-features.h> -/* In libc.so we do not unconditionally use the lock prefix. Only if - the application is using threads. */ -#ifndef UP -# define LOCK \ - cmpl $0, __libc_multiple_threads(%rip); \ - je 0f; \ - lock; \ -0: -#endif - /* All locks in libc are private. Use the kernel feature if possible. */ #define FUTEX_PRIVATE_FLAG 128 #ifdef __ASSUME_PRIVATE_FUTEX |