about summary refs log tree commit diff
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2007-05-30 04:08:13 +0000
committerUlrich Drepper <drepper@redhat.com>2007-05-30 04:08:13 +0000
commit0154658d3db3ac2880c44bcc85c6fe47f4bdbb7c (patch)
treef975159df12f61c47931c808adb95af33cd8aace
parent4b5e7304ed3cd6da133f82b6daf8c43b76ce5b50 (diff)
downloadglibc-0154658d3db3ac2880c44bcc85c6fe47f4bdbb7c.tar.gz
glibc-0154658d3db3ac2880c44bcc85c6fe47f4bdbb7c.tar.xz
glibc-0154658d3db3ac2880c44bcc85c6fe47f4bdbb7c.zip
* 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/ChangeLog5
-rw-r--r--nptl/sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S10
-rw-r--r--nptl/sysdeps/unix/sysv/linux/internaltypes.h2
-rw-r--r--nptl/sysdeps/unix/sysv/linux/x86_64/libc-lowlevellock.S10
4 files changed, 6 insertions, 21 deletions
diff --git a/nptl/ChangeLog b/nptl/ChangeLog
index 9d71dccd1b..b757f48df5 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 f246711489..830f628578 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 dfd53a02b6..add20b6f72 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 21bf58cbbd..3265eee0ed 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