This is the mail archive of the libc-alpha@sources.redhat.com mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[RFC/PATCH] RT-NPTL-2.3 2/7


Makeconfig                             |    6 
 config.make.in                         |    1 
 configure.in                           |    8 
 nptl/ChangeLog.rtnptl                  |  908
+++++++++++++++++++++++++++++++++
 nptl/Makefile                          |   25 
 nptl/Versions                          |   13 
 nptl/pthreadP.h                        |    4 
 nptl/pthread_cond_destroy.c            |    1 
 nptl/pthread_mutex_consistent_np.c     |   22 
 nptl/pthread_mutex_ctl_np.c            |   19 
 nptl/pthread_mutex_destroy.c           |    5 
 nptl/pthread_mutex_getconsistency_np.c |   18 
 nptl/pthread_mutex_getprioceiling.c    |   24 
 nptl/pthread_mutex_getunlock_np.c      |   31 +
 nptl/pthread_mutex_init.c              |   15 
 15 files changed, 1096 insertions(+), 4 deletions(-)

--- robustmutexes/rtnptl/src/Makeconfig:1.1.1.1.2.7	Wed Jul 21
14:20:07 2004
+++ robustmutexes/rtnptl/src/Makeconfig	Wed Jul 21 15:17:43 2004
@@ -637,10 +637,14 @@
 +cflags := $(+cflags) $(+gccwarn)
 +gcc-nowarn := -w
 
+# Enable Robust Mutex Supoort
+ifeq (yes,$(build-robust-mutex))
++cflags := $(+cflags) -DUSE_FUSYN_ROBUST_MUTEX
+endif
+
 # Don't duplicate options if we inherited variables from the parent.
 +cflags	:= $(sort $(+cflags))
 
-
 # These are flags given to the C compiler to tell it to look for
include
 # files (including ones given in angle brackets) in the current
directory,
 # in the parent library source directory and in the include directory.
@@ -683,6 +687,7 @@
 object-suffixes :=
 CPPFLAGS-.o = $(pic-default)
 CFLAGS-.o = $(filter %frame-pointer,$(+cflags))
+
 ifeq (yes,$(build-static))
 libtype.o := lib%.a
 object-suffixes += .o
--- robustmutexes/rtnptl/src/config.make.in:1.1.1.1.2.7	Wed Jul 21
14:20:07 2004
+++ robustmutexes/rtnptl/src/config.make.in	Wed Jul 21 15:17:43 2004
@@ -90,6 +90,7 @@
 add-ons = @add_ons@
 cross-compiling = @cross_compiling@
 force-install = @force_install@
+build-robust-mutex = @robust_mutex@
 
 # Build tools.
 CC = @CC@
--- robustmutexes/rtnptl/src/configure.in:1.1.1.1.2.9	Wed Jul 21
14:20:07 2004
+++ robustmutexes/rtnptl/src/configure.in	Wed Jul 21 15:17:43 2004
@@ -121,6 +121,14 @@
 	      [enable_check_abi=$enableval],
 	      [enable_check_abi=no])
 
+dnl Arguments to enable or disable robust mutex feature.
+AC_SUBST(robust_mutex)
+AC_ARG_ENABLE([robust_mutex],
+              AC_HELP_STRING([--enable-robust-mutex],
+                             [Build the library with robust mutexes
support @<:@default=no@:>@]),
+	      [robust_mutex=$enableval],
+	      [robust_mutex=default])
+
 dnl Arguments to enable or disable building the static, shared,
profiled,
 dnl and -fomit-frame-pointer libraries.
 dnl I've disabled this for now since we cannot build glibc without
static
--- /dev/null	Fri Jul 23 03:18:15 2004
+++ robustmutexes/rtnptl/src/nptl/ChangeLog.rtnptl	Mon Jul 19
02:48:08 2004
@@ -0,0 +1,908 @@
+2004-7-19 Boris Hu <boris.hu@intel.com>
+
+	* pthread_mutex_destroy.c: Release both normal mutex 
+	and RM 's kernel objects.
+	* pthread_cond_destroy.c: Release condvar's kernel objects.
+	* sysdeps/unix/sysv/linux/lowlevelrtlock.h: Add lll_fuqueue_ctl.
+	
+2004-7-16 Boris Hu <boris.hu@intel.com>
+
+	* sysdeps/unix/sysv/linux/i386/pthread_cond_timedwait.c:
+	Move FUQUEUE_WAITER_GOT_LOCK check before bc_seq check.
+	Thanks for Inaky's pointer.
+	Remove the update of __woken_seq of rq_out branch, for
+	rq_out is one of pthread_cond_broadcast() way and its
+	value has been updated there.
+	* sysdeps/unix/sysv/linux/i386/pthread_cond_wait.c: Likewise.
+
+2004-7-15 Boris Hu <boris.hu@intel.com>
+
+	* sysdeps/unix/sysv/linux/i386/pthread_cond_timedwait.c:
+	Replace the negative errno to positive errno, for 
+	lll_fuqueue_timedwait() return the positive errno.
+	Adapt to sys_ufuqueue_wait() new change. 	
+	* sysdeps/unix/sysv/linux/i386/pthread_cond_wait.c: Likewise.
+
+2004-7-14 Boris Hu <boris.hu@intel.com>
+
+	* sysdeps/unix/sysv/linux/lowlevelrtlock.h: Adapt to 
+	sys_ufuqueue_wait() change and add absolute timeout support
+	for lll_fuquque_timedwait.
+	* sysdeps/unix/sysv/linux/i386/pthread_cond_wait.c: Likewise.
+	* sysdeps/unix/sysv/linux/i386/pthread_cond_timedwait.c:
Likewise.
+	* 
+	
+2004-7-13 Boris Hu <boris.hu@intel.com>
+
+	* sysdeps/unix/sysv/linux/pthread_mutex_rq_lock.c: New file.
+	* sysdeps/unix/sysv/linux/Makefile: Add pthread_mutex_rq_lock.
+	* sysdeps/unix/sysv/linux/i386/pthread_cond_wait.c: Add
+	support for FUQUEUE_WAITER_GOT_LOCK.
+	* sysdeps/unix/sysv/linux/i386/pthread_cond_timedwait.c:
Likewise.
+
+2004-6-23 Boris Hu <boris.hu@intel.com>
+
+	* sysdeps/unix/sysv/linux/lowlevelrtlock.h: Add check 
+	of invalid timeout.
+
+2004-6-23 Boris Hu <boris.hu@intel.com>
+
+	* pthread_mutex_init.c: Set the default unlock mode to
+	FULOCK_UNLOCK_AUTO.
+
+2004-6-10 Boris Hu <boris.hu@intel.com>
+
+	* sysdeps/unix/sysv/linux/internaltypes.h: Update
+	NON_MUTEX_KIND_MASK.
+	
+2004-6-9 Boris Hu <boris.hu@intel.com>
+
+	* sysdeps/unix/sysv/linux/i386/pthread_cond_broadcast.c:
+	Enable the requeue user space support.
+	* sysdeps/unix/sysv/linux/lowlevelrtlock.c: Add abosulte 
+	timeout support.
+	* sysdeps/unix/sysv/linux/lowlevelrtlock.h: Likewise.
+
+2004-6-7 Boris Hu <boris.hu@intel.com>
+
+	* sysdeps/pthread/pthread.h: Modify PTHREAD_MUTEX_ROBUST_*
+	to adapt to FULOCK_CTL_* changes.
+	* pthread_mutex_destroy.c: Add FULOCK_CTL_RELEASE.
+	* sysdeps/unix/sysv/linux/internaltypes.h: Modify 
+	PRIOCEILING_MASK to align to FULOCK_FL_PP_PRIO_MK.
+
+2004-6-5 Boris Hu <boris.hu@intel.com>
+
+	* sysdeps/unix/sysv/linux/i386/pthread_cond_broadcast.c: Get
+	update from sysdeps/pthread/pthread_cond_broadcast.c.
+	* sysdeps/unix/sysv/linux/i386/pthread_cond_signal.c: Likewise.
+	* sysdeps/unix/sysv/linux/i386/pthread_cond_timedwait.c:
Likewise.
+	* sysdeps/unix/sysv/linux/i386/pthread_cond_wait.c: Likewise.
+	
+2004-5-26 Boris Hu <boris.hu@intel.com>
+
+	* sysdeps/unix/sysv/linux/lowlevelrtlock.c: Remove
is_mutex_healthy.
+	* sysdeps/unix/sysv/linux/i386/pthread_cond_wait.c: Update from
+	sysdeps/pthread/pthread_cond_wait.c.
+	* sysdeps/unix/sysv/linux/i386/pthread_cond_timedwait.c:
Likewise.
+
+2004-5-25 Boris Hu <boris.hu@intel.com>
+
+	* sysdeps/pthread/pthread.h: Rename
PTHREAD_MUTEX_UNLOCK_UNSERIAL_NP
+	to PTHREAD_MUTEX_UNLOCK_PARALLEL_NP.
+	* pthread_mutexattr_getserial_np.c: ->
+	  pthread_mutexattr_getunlock_np.c.
+	* pthread_mutexattr_setserial_np.c: ->
+	  pthread_mutexattr_setunlock_np.c.
+	* pthread_mutex_getserial_np.c ->
+	  pthread_mutex_getunlock_np.c.
+	* Makefile: Likewise.
+	* Versions: Likewise.
+	* sysdeps/pthread/pthread.h: Likewise.
+	
+2004-5-21 Boris Hu <boris.hu@intel.com>
+
+	* sysdeps/unix/sysv/linux/i386/pthread_cond_broadcast.c: Add
FUSYN
+	requeue support and get update from sysdeps/pthread/
+	pthread_cond_broadcast.c.
+	* sysdeps/unix/sysv/linux/i386/pthread_cond_wait.c: Get update
from
+	sysdeps/pthread/pthread_cond_wait.c.
+	* sysdeps/unix/sysv/linux/i386/pthread_cond_timedwait.c:
Likewise.
+	* sysdeps/unix/sysv/linux/powerpc/pthread_cond_broadcast.c:
Likewise.
+	* sysdeps/unix/sysv/linux/powerpc/pthread_cond_wait.c: Likewise.
+	* sysdeps/unix/sysv/linux/powerpc/pthread_cond_timedwait.c:
Likewise.
+	* sysdeps/unix/sysv/linux/ia64/pthread_cond_broadcast.c: Add GPL
header.
+	* sysdeps/unix/sysv/linux/ia64/pthread_cond_signal.c: Likewise.
+	* sysdeps/unix/sysv/linux/ia64/pthread_cond_timedwait.c:
Likewise.
+	* sysdeps/unix/sysv/linux/ia64/pthread_cond_wait.c: Likewise.
+
+2004-5-21 Boris Hu <boris.hu@intel.com>
+
+	* pthreadP.h: Compile warning fix.
+	* sysdeps/unix/sysv/linux/internaltypes.h: Reserve one more bit
+	of mutexkind to support FULOCK_UNLOCK_AUTO.
+	* sysdeps/pthread/pthread.h: Add PTHREAD_MUTEX_UNLOCK_AUTO_NP 
+	and rename PTHREAD_MUTEX_{SERIAL, UNSERIAL}_NP to 
+	PTHREAD_MUTEX_UNLOCK_{SERIAL, UNSERIAL}_NP.
+	* pthread_mutexattr_setserial_np.c: Likewise.
+	* pthread_mutexattr_getserial_np.c: Likewise.
+	* pthread_mutex_setserial_np.c: Likewise.
+	* pthread_mutex_getserial_np.c: Likewise.
+	* sysdeps/unix/sysv/linux/lowlevelrtlock.c: Likewise.
+	* pthread_mutexattr_init.c: Set PTHREAD_MUTEX_UNLOCK_AUTO_NP as
+	the default behavior.
+
+	
+2004-5-20 Boris Hu <boris.hu@intel.com>
+
+	* glibc_lock___branch: New branch to track glibc internal locks
+	developments.
+	
+2004-5-19 Boris Hu <boris.hu@intel.com>
+
+	* sysdeps/pthread/pthread.h: Compile warning fixes.
+	* pthread_mutex_ctl_np.c: Likewise.
+	* sysdeps/unix/sysv/linux/lowlevelrtlock.h: Likewise.
+	* sysdeps/unix/sysv/linux/lowlevelrtlock.c: Likewise.
+	* sysdeps/unix/sysv/linux/internaltypes.h: Likewise.
+	* sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Likewise.
+	* pthread_mutexattr_setprioceiling.c: Likewise.
+	* pthread_mutex_lock_waiting_for_mutex_whose_owner_died_np.c: 
+	Rename to pthread_mutex_whose_owner_dead_np.
+	* Makefile: Likewise.
+	* pthread_mutex_trylock.c: Likewise.
+	* pthread_mutex_lock.c: Likewise.
+	* pthread_mutex_timedlock.c: Likewise.
+	
+2004-5-14 Boris Hu <boris.hu@intel.com>
+
+	* sysdeps/unix/sysv/linux/lowlevelrtlock.h: Add lll_fuqueu_* 
+	support.
+	* sysdeps/unix/sysv/linux/i386/pthread_cond_wait.c: Replace
+	lll_futex_* with lll_fuqueue_*. 
+	* sysdeps/unix/sysv/linux/i386/pthread_cond_signal.c: Likewise.
+	* sysdeps/unix/sysv/linux/i386/pthread_cond_timedwait.c:
Likewise.
+	* sysdeps/unix/sysv/linux/i386/pthread_cond_broadcast.c:
Likewise.
+
+2004-5-14 Boris Hu <boris.hu@intel.com>
+
+	* sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Add
+	_POSIX_THREAD_MUTEX_SERIAL_NP and _POSIX_THREAD_MUTEX_FAST_NP
+	definitions.
+	* glibc/sysdeps/generic/bits/confname.h: Add their support.
+	* glibc/sysdeps/posix/sysconf.c: Likewise.
+	* tst-options1.c: New file.
+	* Makefile: Add tst-options1.
+
+2004-5-13 Inaky Perez-Gonzalez <inaky.perez-gonzalez@intel.com>
+
+	* pthread_mutex_ctl_np.c: New file.
+	* Makefile: Add pthread_mutex_ctl_np.
+	* Versions: Likewise.
+	* sysdeps/pthread/pthread.h: Likewise.
+	* sysdeps/unix/sysv/linux/lowlevelrtlock.c: Add
+	__lll_rtmutex_ctl support.
+	* sysdeps/unix/sysv/linux/lowlevelrtlock.h: Likewise.
+
+2004-5-11 Boris Hu <boris.hu@intel.com>
+
+	* sysdeps/pthread/pthread.h: Rename PTHREAD_KCO_NP to
+	PTHREAD_SLOWPATH_NP.
+	* pthread_mutexattr_setfast_np.c: Likewise.
+	* pthread_mutexattr_getfast_np.c: Likewise.
+	* tst-fast1.c: Likewise.
+	* pthread_mutex_setfast_np.c: Removed.
+	* pthread_mutex_getfast_np.c: Likewise.
+	* Makefile: Likewise.
+	* Versions: Likewise.
+	* pthread_mutex_setserial_np.c: New file.
+	* pthread_mutex_getserial_np.c: Likewise.
+	* Makefile: Likewise.
+	* Versions: Likewise.
+	* sysdeps/pthread/pthread.h: Likewise.
+	* sysdeps/unix/sysv/linux/lowlevelrtlock.h: New file.
+	* sysdeps/unix/sysv/linux/i386/lowlevellock.h: Move most of 
+	Robust Mutexes stuff to lowlevelrtlock.h and only arch-related 
+        remains. 
+	* sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
+	* sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
+
+	
+2004-4-17 Boris Hu <boris.hu@intel.com>
+
+	* pthread_mutexattr_init.c: Set the default prioceiling value
+  	as MIN_USER_RT_PRIO.
+	* sysdeps/unix/sysv/linux/internaltypes.h: Add
NON_MUTEX_KIND_MASK
+	to show the bits reserved in mutexkind field.
+	* pthread_mutexattr_settype.c: Replace 0x80000000 
+	with NON_MUTEX_KIND_MASK.
+	* pthread_mutexattr_gettype.c: Likewise.
+	* pthread_mutex_lock.c: Replace FUSYN_FL_RT_MASK 
+	with NON_MUTEX_KIND_MASK.
+	* pthread_mutex_unlock.c: Likewise.
+	* pthread_mutex_trylock.c: Likewise.
+	* pthread_mutex_timedlock.c: Likewise.
+	* Tag: rtnptl___2_2.
+	
+2004-4-13 Boris Hu <boris.hu@intel.com>
+
+	* sysdeps/unix/sysv/linux/internaltypes.h: Add MIN_USER_RT_PRIO.
+	* pthread_mutex_setprioceiling.c: Bug fix.
+	* pthread_mutex_getprioceiling.c: Likewise.
+	* pthread_mutexattr_setprioceiling.c: Likewise.
+	* pthread_mutexattr_getprioceiling.c: Likewise.
+	* sysdeps/pthread/pthread.h: Likewise.
+	* pthread_mutex_init.c: Likewise.
+	* sysdeps/unix/sysv/linux/i386/lowlevellock.h: Add
PRIOCEILING_MASK
+	to FUSYN_FL_RT_MASK.
+	* sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
+	* sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
+
+	* sysdeps/unix/sysv/linux/internaltypes.h: Reserver Bit 18-24 of
mutexkind
+	to record priority ceiling value, for NPTL has used the lowest
bits.
+	* pthread_mutex_getprioceiling.c: Likewise.
+	* pthread_mutex_setprioceiling.c: Likewise.
+	* pthread_mutexattr_getprioceiling.c: Likewise.
+	* pthread_mutexattr_setprioceiling.c: Likewise.
+
+2004-4-8 Boris Hu <boris.hu@intel.com>
+
+	* sysdeps/unix/sysv/linux/internaltypes.h: Remove FULOCK_SPIN_*
+	and its bit comment in pthread_mutexattr. The new spins field of

+	pthread_mutex_t is used instead.
+	* sysdeps/unix/sysv/linux/i386/lowlevellock.h: Likewise.
+	* sysdeps/unix/sysv/linux/lowlevelrtlock.c: Likewise.
+	* pthread_mutexattr_getspin_np.c: Removed.
+	* pthread_mutexattr_setspin_np.c: Removed.
+	* Versions: Remove pthread_mutexattr_{g,s}etspin_np.
+	* tst-spin-mode1.c: Removed.
+	* Makefile: Remove tst-spin-mode1,
pthread_mutexattr_{g,s}etspin_np.
+
+2004-3-30 Boris Hu <boris.hu@intel.com>
+
+	* sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Remove
+	__prioceiling field from pthread_mutex_t.
+	* pthread_mutex_init.c: Likewise.
+	
+2004-3-25 Greg Weeks <greg.weeks@timesys.com>
+
+	* pthread_mutex_setprioceiling.c: Remove errno variable.
+	* pthread_mutexattr_setprioceiling.c: Likewise.
+	* sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Add
+	  RT-NPTL support to powerpc. 
+	* sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
+	* sysdeps/unix/sysv/linux/powerpc/pthread_cond_broadcast.c:
+	  New file.
+	* sysdeps/unix/sysv/linux/powerpc/pthread_cond_signal.c:
+	  New file.
+	* sysdeps/unix/sysv/linux/powerpc/pthread_cond_timedwait.c:
+	  New file.
+	* sysdeps/unix/sysv/linux/powerpc/pthread_cond_wait.c:
+	  New file.
+
+	
+2004-3-23 Boris Hu <boris.hu@intel.com>
+
+	* sysdeps/unix/sysv/linux/lowlevelrtlock.c: Enable the
+	unserialized waking up mode based on the latest fusyn 
+	kernel modification.
+
+	
+2004-3-3 Boris Hu <boris.hu@intel.com>
+
+	* sysdeps/unix/sysv/linux/internaltypes.h: Add comments
+	to get Bit 24 of mutexkind for the spinning switching of
+	fulocks.
+	* Versions: Add pthread_mutexattr_{g,s}etspin_np.
+	* pthread_mutexattr_getspin_np.c: New file.
+	* pthread_mutexattr_setspin_np.c: Likewise.
+	* sysdeps/pthread/pthread.h: Add PTHREAD_MUTEX_SPIN_NP.
+	* sysdeps/unix/sysv/linux/lowlevelrtlock.c: Add FULOCK_FL_SPIN
+	support.
+	* sysdeps/unix/sysv/linux/i386/lowlevellock.h: Likewise.
+	* Makefile: Add pthread_mutexattr_{g,s}etspin_np.
+
+	* tst-spin-mode1.c: New file.
+	* Makefile: Add tst-spin-mode1.
+
+2004-2-18  Dave Howell  <david.p.howell@intel.com>
+
+	* sysdeps/unix/sysv/linux/ia64/lowlevellock.h
+	* sysdeps/unix/sysv/linux/ia64/lowlevelrtlock.c
+	Removed lowlevelrtlock.c, now uses version above ia64.
+	Updated lowlevellock.h to use common lowlevelrtlock.c.
+
+2004-2-17 Boris Hu  <boris.hu@intel.com>
+
+	* pthread_mutex_consistent_np.c: New file.
+	* Versions: Add pthread_mutex_consistent_np.
+	* sysdeps/pthread/pthread.h: Likewise.
+	* Makefile: Likewise.
+	
+2004-2-13  Dave Howell  <david.p.howell@intel.com>
+
+	* sysdeps/unix/sysv/linux/ia64/lowlevellock.h
+	* sysdeps/unix/sysv/linux/ia64/lowlevelrtlock.c
+	Updates to incorporate changes for i386 in ia64 port
+
+2004-2-13 Boris Hu  <boris.hu@intel.com>
+
+	* tst-fast1.c: New file.
+	* tst-serial1.c: New file.
+	* Makefile: Add tst-fast1, tst-serial1, 
+	pthread_mutexattr_{g,s}etfast_np, 
+	pthread_mutexattr_{g,s}etserial_np,
pthread_mutex_{g,s}etfast_np.
+	* sysdeps/pthread/pthread.h: Add
pthread_mutexattr_{g,s}etfast_np,
+	pthread_mutexattr_{g,s}etserial_np,
pthread_mutex_{g,s}etfast_np.
+	
+2004-2-11 Boris Hu  <boris.hu@intel.com>
+
+	* sysdeps/unix/sysv/linux/internaltypes.h: Rename
+	MUTEX_SERIAL_BITMASK and MUTEX_FASTPATH_BITMASK to
+	FULOCK_SERIAL_MODE and FULOCK_FASTPATH_MODE.
+	* pthread_mutexattr_setfast_np.c: Likewise.
+	* pthread_mutexattr_getfast_np.c: Likewise.
+	* pthread_mutex_getfast_np.c: Likewise.
+	* pthread_mutex_setfast_np.c: Likewise.
+	* pthread_mutexattr_setserial_np.c: Likewise.
+	* pthread_mutexattr_getserial_np.c: Likewise.
+	* sysdeps/unix/sysv/linux/lowlevelrtlock.c: Likewise.
+	* pthread_mutexattr_setrobust_np.c: Likewise.
+	* pthread_mutexattr_setprotocol.c: Likewise.
+
+2004-2-10 Boris Hu  <boris.hu@intel.com>
+
+	* pthread_mutexattr_setrobust_np.c: Add MUTEX_SERIAL_BITMASK
+	when the mutex is robust.
+	* pthread_mutexattr_setprotocol.c: Likewise.
+	* pthread_mutex_init.c: Use PTHREAD_MUTEX_ROBUST_INIT_NP 
+	instead of PTHREAD_MUTEX_ROBUST_CONSISTENT_NP.
+	* sysdeps/unix/sysv/linux/lowlevelrtlock.c: Avoid to wakeup
+	INT_MAX waiters.
+
+2004-2-6  Boris Hu  <boris.hu@intel.com>
+
+	* pthread_mutexattr_getserial_np.c: New file.
+	* pthread_mutexattr_setserial_np.c: New file.
+	
+2004-2-6  Boris Hu  <boris.hu@intel.com>
+	
+	* pthread_mutexattr_setprioceiling.c: Bug fix. Clean
+	the old value before setting the new value.
+	* pthread_mutexattr_setprotocol.c: Likewise.
+	* pthread_mutexattr_setrobust_np.c: Likewise.
+	* pthread_mutexattr_getrobust_np.c: Typo bug fix.
+	* sysdeps/unix/sysv/linux/i386/lowlevellock.h: Add
+	FUSYN_FL_RT2K_MASK to the new flags. 
+	* sysdeps/unix/sysv/linux/lowlevelrtlock.c: Add FULOCK_FL_KCO
+	support.
+	* pthread_mutex_init.c: Bug fix.
+	
+2004-2-5  Boris Hu  <boris.hu@intel.com>
+
+	* sysdeps/unix/sysv/linux/internaltypes.h: Add comments 
+	to get Bit 25 and 26 of mutexkind for the switching of 
+	fast-path and KCO mode, serialized or unserialized. 
+	Add MUTEX_FAST_BITMASK and MUTEX_SERIAL_BITMASK.
+	* Versions: Add pthread_mutexattr_{g,s}etfast_np,
+	pthread_mutex_{g,s}etfast_np.
+	* pthread_mutexattr_getfast_np.c: New file.
+	* pthread_mutexattr_setfast_np.c: Likewise.
+	* pthread_mutex_getfast_np.c: Likewise.
+	* pthread_mutex_setfast_np.c: Likewise.
+	* sysdeps/pthread/pthread.h: Add PTHREAD_MUTEX_FASTPATH_NP, etc
+	switching modes.
+
+2004-2-5  Boris Hu  <boris.hu@intel.com>
+
+	* sysdeps/unix/sysv/linux/pthread_mutex_cond_lock.c:
+	Roll back LLL_RTMUTEX_LOCK() to LLL_MUTEX_LOCK() definition
+	to delay the support runtime switching RM and normal mutex till
it is really needed.
+	* pthread_mutex_lock.c: Likewise.
+	* pthread_mutex_trylock.c: Likewise.
+	* pthread_mutex_timedlock.c: Likewise.
+	* pthread_mutex_unlock.c: Likewise.
+	* sysdeps/unix/sysv/linux/lowlevelrtlock.c:
+	Rename *fulock_consistency() to *fulock_ctl(), 'enum fulock_con'

+	to 'enum fulock_ctl' to adapt to the fusyn kernel change.
+	* sysdeps/unix/sysv/linux/i386/lowlevellock.h: Likewise.
+	
+2004-2-3  Boris Hu  <boris.hu@intel.com>
+
+	* sysdeps/unix/sysv/linux/lowlevelrtlock.c:
+	Rename VFULOCK_KCO to VFULOCK_WP.
+
+2004-2-2  Boris Hu  <boris.hu@intel.com>
+
+	* sysdeps/unix/sysv/linux/pthread_mutex_cond_lock.c:
+	Modify LLL_MUTEX_LOCK() to LLL_RTMUTEX_LOCK() definition
+	in RM situation to support runtime switching RM and normal
+	mutex.
+	* pthread_mutex_lock.c: Likewise.
+	* pthread_mutex_trylock.c: Likewise.
+	* pthread_mutex_timedlock.c: Likewise.
+	* pthread_mutex_unlock.c: Likewise.
+	
+2004-2-2  Boris Hu  <boris.hu@intel.com>
+
+	* sysdeps/unix/sysv/linux/i386/lowlevelrtlock.c:
+	Moved to sysdeps/unix/sysv/linux directory.	
+
+2004-1-30  Dave Howell  <david.p.howell@intel.com>
+
+	* sysdeps/unix/sysv/linux/ia64/lowlevellock.h
+	* sysdeps/unix/sysv/linux/ia64/lowlevelrtlock.c
+	Updates to track is_mutexattr_robust() changes for i386
+	* Makefile
+	* init.c
+	* pthread_mutex_lock.c
+	* pthread_mutex_timedlock.c
+	* pthread_mutex_unlock.c
+	Change to remove references to eventlog.h/eventlog
+
+2004-1-17  Boris Hu  <boris.hu@intel.com>
+
+	* sysdeps/unix/sysv/linux/i386/lowlevelrtlock.c:
+	Add is_mutexattr_robust().
+	
+2004-1-13  Boris Hu  <boris.hu@intel.com>
+
+	* glibc/configure.in: Add --enable-robust-mutex option.
+	* glibc/config.make.in: Define build-robust-mutex.
+	* glibc/Makeconfig: Add USE_FUSYN_ROBUST_MUTEX based on 
+	build-robust-mutex.
+	* sysdeps/unix/sysv/linux/i386/lowlevellock.h: Remove 
+	USE_FUSYN_ROBUST_MUTEX definition.
+
+2004-1-6  Boris  Hu  <boris.hu@intel.com>
+
+	* pthread_mutex_init.c: Add RM reinitialization support.
+
+2003-12-26  Boris Hu  <boris.hu@intel.com>
+
+	* sysdeps/unix/sysv/linux/i386/lowlevelrtlock.c:
+	Replace INLINE_SYSCALL with INTERNAL_SYSCALL.
+	* sysdeps/unix/sysv/linux/i386/lowlevellock.h: Likewise.
+	
+2003-12-22  Dave Howell  <david.p.howell@intel.com>
+
+	* sysdeps/unix/sysv/linux/ia64/lowlevellock.h
+	* sysdeps/unix/sysv/linux/ia64/lowlevelrtlock.c
+	* sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h
+	Updates to sync up with i386 recent changes.
+
+2003-12-9   Boris Hu  <boris.hu@intel.com>
+
+	* pthread_mutex_unlock.c: mutex->__data.__owner order bug
+	fix. 
+	* sysdeps/unix/sysv/linux/i386/lowlevellock.h:
+	lll_futex_timed_wait()/lll_futex_requeue() return negative
errno.
+	
+2003-12-3   Boris Hu  <boris.hu@intel.com>
+
+	* pthread_mutex_lock.c: Redefine LLL_MUTEX_* macro
+	to enable/disable rt featuer by USE_FUSYN_ROBUST_MUTEX.
+	* pthread_mutex_unlock.c: Likewise.
+	* sysdeps/unix/sysv/linux/i386/pthread_cond_signal.c:
+	Add LLL_CMUTEX_* to enable/disable rt featuer by 
+	USE_FUSYN_ROBUST_MUTEX.
+	* sysdeps/unix/sysv/linux/i386/pthread_cond_broadcast.c:
+	Likewise.
+	* sysdeps/unix/sysv/linux/i386/pthread_cond_wait.c: Likewise.
+	* sysdeps/unix/sysv/linux/i386/pthread_cond_timedwait.c: 
+	Likewise.
+	* sysdeps/unix/sysv/linux/i386/lowlevellock.h:
+	Add lll_rtmutex_{g,s}et_consistency definitions for normal NPTL.
+	* INSTALL-rtnptl-upon-fusyn: New file.
+	* rtnptl___2_0: A new version.
+
+2003-12-2  Dave Howell  <david.p.howell@intel.com>
+
+	* sysdeps/unix/sysv/linux/ia64/lowlevellock.h
+	* sysdeps/unix/sysv/linux/ia64/lowlevelrtlock.c
+	Updates to sync with i386 changes. Fixes for INLINE_SYSCALL()
+	return value checks that differed from i386. Added GPL header
+	info to lowlevelrtlock.c.
+
+2003-12-2   Boris Hu  <boris.hu@intel.com>
+
+	* pthread_mutexattr_getprotocol.c: Replace FUSYN_FL_* 
+	with FULOCK_FL_* from kernel fulock.h file.
+	* pthread_mutexattr_setprotocol.c: Likewise.
+	* pthread_mutexattr_getrobust_np.c: Likewise.
+	* pthread_mutexattr_setrobust_np.c: Likewise.
+	* pthread_mutex_unlock.c: Likewise.
+	* pthread_mutex_trylock.c: Code clean.
+	
+2003-12-2   Boris Hu  <boris.hu@intel.com>
+
+	* sysdeps/unix/sysv/linux/i386/lowlevellock.h: 
+	__LK_FL bug fix reported by Selbak, Rolla.
+	* pthread_mutex_setconsistency_np.c: Bug fix provided
+	by Selbak, Rolla.	
+	
+2003-12-1   Boris Hu  <boris.hu@intel.com>
+
+	* sysdeps/unix/sysv/linux/i386/pthread_cond_broadcast.c:
+	FIXME code clean.
+	* sysdeps/unix/sysv/linux/i386/pthread_cond_signal.c:
+	Likewise.
+	* sysdeps/unix/sysv/linux/i386/pthread_cond_wait.c:
+	Likewise.
+	* sysdeps/unix/sysv/linux/i386/pthread_cond_timedwait.c:
+	Likewise.
+	* sysdeps/unix/sysv/linux/i386/lowlevellock.h:
+	Hack lll_cmutex_lock() to promise to get the lock.
+	* pthread_mutex_getconsistency_np.c: Add const qualifier.
+	* sysdeps/pthread/pthread.h: Likewise.
+	
+2003-12-1   Boris Hu  <boris.hu@intel.com>
+
+	* sysdeps/unix/sysv/linux/i386/pthread_cond_wait.c: 
+	Merge nptl process shared condvar bug fix.
+	* sysdeps/unix/sysv/linux/i386/pthread_cond_timedwait.c:
+	Likewise. 
+	* sysdeps/unix/sysv/linux/i386/pthread_cond_broadcast.c:
+	Likewise.
+	
+2003-11-24  Boris Hu  <boris.hu@intel.com>
+
+	* merge glibc___200311220227 into rtnptl___branch.
+	
+2003-11-23  Boris Hu  <boris.hu@intel.com>
+
+	* sysdeps/pthread/createthread.c: Remove pid signature stuff.
+	* init.c: Likewise.
+	
+2003-11-23  Boris Hu  <boris.hu@intel.com>
+
+	* pthread_mutex_unlock.c: Move ERRORCHECK and
+	RECURSIVE mutex from kernel to the user space.
+	* pthread_mutex_lock.c: Likewise.
+	* pthread_mutex_trylock.c: Likewise. 
+	* pthread_mutex_timedlock.c: Likewise.
+	* sysdeps/unix/sysv/linux/i386/lowlevellock.h:
+	Remove RECURSIVE and ERRORCHECK flags.
+	* rtnptl___1_10: All nptl test cases passed and it bases
+	on fusyn-1.13.
+	
+2003-11-22  Boris Hu  <boris.hu@intel.com>
+
+	* rtnptl___1_9: Pass all tst-cond*. 
+
+2003-11-21  Dave Howell  <david.p.howell@intel.com>
+
+	* sysdeps/unix/sysv/linux/ia64/lowlevellock.h
+	* sysdeps/unix/sysv/linux/ia64/lowlevelrtlock.c
+	* sysdeps/unix/sysv/linux/ia64/pthread_cond_broadcast.c
+	* sysdeps/unix/sysv/linux/ia64/pthread_cond_signal.c
+	* sysdeps/unix/sysv/linux/ia64/pthread_cond_timedwait.c
+	* sysdeps/unix/sysv/linux/ia64/pthread_cond_wait.c
+	Updates to ia64 versions to match changes to i386 for recent 
+	kernel changes.
+	Made pthread_cond_*.c just include ../i386/pthread_cond*.c, to
+	track i386 implementation. When this is made default, change 
+	to put it common for all architectures.
+	
+2003-11-21  Boris Hu  <boris.hu@intel.com>
+
+	* pthread_mutex_lock.c:
+	Add __nusers support for pthread_mutex_destroy will check it.
+	* pthread_mutex_unlock.c: Likewise.
+	* pthread_mutex_timedlock.c: Likewise.
+	* pthread_mutex_trylock.c: Likewise.
+	
+2003-11-21  Boris Hu  <boris.hu@intel.com>
+
+	* sysdeps/unix/syv/linux/fork.c: Remove pid signature.
+	* sysdeps/unix/sysv/linux/i386/lowlevellock.h: Remove
+	all lll_fucond_* stuff.
+	Remove lll_rtmutex_make_signature.
+	* sysdeps/unix/sysv/linux/i386/lowlevelrtlock.c: Likewise.
+	* pthread_mutex_unlock.c: Add the support to detect other tid
try 
+	to unlock the lock for ERRORCHECK.
+	* sysdeps/unix/sysv/linux/i386/lowlevellock.h: (Inaky)
+	lll_futex_wait/lll_futex_wake bug fix.
+	lll_futex_requeue replace with FUTEX_WAKE.
+	* sysdeps/unix/sysv/linux/i386/pthread_cond_broadcast.c: 
+	Bug fix (Inaky).
+
+2003-11-20  Boris Hu  <boris.hu@intel.com>
+
+	* sysdeps/unix/sysv/linux/i386/lowlevellock.h:
+	Add flags parameters to __lll_rtmutex_lock/unlock.
+	Add lll_cmutex_lock/unlock.
+	* sysdeps/unix/sysv/linux/i386/lowlevelrtlock.c: Likewise.
+	* sysdeps/unix/sysv/linux/pthread_mutex_cond_unlock.c: Removed.
+	* sysdeps/unix/sysv/linux/Makefile: Remove
pthread_mutex_cond_unlock.
+	* sysdeps/unix/sysv/linux/pthread_mutex_cond_lock.c:
+	Restore LLL_MUTEX_LOCK to lll_rtmutex_lock().
+	* sysdeps/unix/sysv/linux/i386/pthread_cond_wait.c:
+	Make the __data.__lock to be a robust lock.
+	* sysdeps/unix/sysv/linux/i386/pthread_cond_timedwait.c:
Likewise.
+	* sysdeps/unix/sysv/linux/i386/pthread_cond_signal.c: Likewise.
+	* sysdeps/unix/sysv/linux/i386/pthread_cond_broadcast.c:
Likewise. 	
+
+2003-11-20  Boris Hu  <boris.hu@intel.com>
+
+	* sysdeps/unix/sysv/linux/i386/pthread_cond_wait.c:
+	Switch condvar from ufucond to ufuqueue.
+	* sysdeps/unix/sysv/linux/i386/pthread_cond_timedwatic.:
Likewise.
+	* sysdeps/unix/sysv/linux/i386/pthread_cond_signal: Likewise.
+	* sysdeps/unix/sysv/linux/i386/pthread_cond_broadcast.c:
Likewise.
+	* sysdeps/unix/sysv/linux/pthread_mutex_cond_unlock.c: New file.
+	* sysdeps/unix/sysv/linux/Makefile: Add
pthread_mutex_cond_unlock.
+	* sysdeps/unix/sysv/linux/i386/lowlevellock.h: 
+	Add lll_rtmutex_cond_lock/unlock definitions.
+	* sysdeps/unix/sysv/linux/i386/lowlevelrtlock.c:
+	Add __lll_rtmutex_cond_lock/unlock implementations.
+
+2003-11-19  Dave Howell  <david.p.howell@intel.com>
+
+	* sysdeps/unix/sysv/linux/i386/lowlevellock.h
+	* sysdeps/unix/sysv/linux/ia64/lowlevellock.h
+	* sysdeps/unix/sysv/linux/ia64/lowlevelrtlock.c
+	Fixed typo in i386/lowlevellock.h,
+	 pthread_mutex/consistent_np -> pthread_mutex_consistency_np
+	Updates to ia64 versions to match changes to i386 for recent 
+	kernel changes.
+
+2003-11-18  Boris Hu  <boris.hu@intel.com>
+
+	* sysdeps/unix/sysv/linux/i386/lowlevelrtlock.c:
+	Add FULOCK_FL_RECURSIVE, FULOCK_FL_ERROR_CHK support.
+	* pthread_mutex_lock.c: Remove recursive and error 
+	check mutex handlering code and let the fusyn kernel 
+	do for us.
+	* pthread_mutex_timedlock.c: Likewise.
+	* pthread_mutex_trylock.c: Likewise.
+	* pthread_mutex_unlock.c: Likewise.
+	
+2003-11-18  Boris Hu  <boris.hu@intel.com>
+
+	* sysdeps/unix/sysv/linux/i386/pthread_cond_wait.c:
+	Change the cancelability type to PTHREAD_CANCEL_ASYNCHRONOUS
before
+	sys_ufucond_wait.
+	* sysdeps/unix/sysv/linux/i386/pthread_cond_timedwait.c:
Likewise.
+	* sysdeps/unix/sysv/linux/ia64/pthread_cond_wait.c: Likewise.
+	* sysdeps/unix/sysv/linux/ia64/pthread_cond_timedwait.c:
Likewise.
+	
+2003-11-17  Boris Hu  <boris.hu@intel.com>
+
+	* sysdeps/unix/sysv/linux/i386/lowlevelrtlock.c:
+	Add is_mutex_robust().
+	* sysdeps/unix/sysv/linux/i386/lowlevellock.h:
+	Add is_mutex_robust() prototype declaration.
+	* pthread_mutex_lock.c:
+	Judge the mutex type with is_mutex_robust().
+	* pthread_mutex_timedlock.c: Likewise.
+	* sysdeps/unix/sysv/linux/i386/pthread_cond_wait.c:
+	Add non-robust mutex OWNERDEAD handlering.
+	* sysdeps/unix/sysv/linux/i386/pthread_cond_timedwait.c:
Likewise.
+
+2003-11-13  Dave Howell  <david.p.howell@intel.com>
+
+	* sysdeps/unix/sysv/linux/ia64/lowlevellock.h
+	* sysdeps/unix/sysv/linux/ia64/lowlevelrtlock.c
+	* sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h
+	Added changes for ia64 port updates. Should be in sync with 
+ 	i386 files at this point
+	* sysdeps/unix/sysv/linux/ia64/pthread_cond_broadcast.c
+	* sysdeps/unix/sysv/linux/ia64/pthread_cond_signal.c
+	* sysdeps/unix/sysv/linux/ia64/pthread_cond_timedwait.c
+	* sysdeps/unix/sysv/linux/ia64/pthread_cond_wait.c
+	Duplicated from i386 side, instead of copying up to linux, 
+	as this implies that kernel support is there for ufucond's.
+	We may still want to do this eventually but this seemd to 
+	be the safe route for now.
+	* rtnptl___1_8: Add ia64 rtnptl feature support.
+
+2003-11-13  Boris Hu  <boris.hu@intel.com>
+
+	* sysdeps/unix/sysv/linux/i386/pthread_cond_wait.c:
+	Update mutex data members to reflect the lock/unlock situations.
+	* sysdeps/unix/sysv/linux/i386/pthread_cond_timedwait.c:
Likewise.
+	* rtnptl___1_7: It passes tst-cond1-4. 
+	
+2003-11-12  Boris Hu  <boris.hu@intel.com>
+
+	* sysdeps/unix/sysv/linux/i386/lowlevelrtlock.c:
+	Add __LK_FL() to get the mutex flags.
+
+2003-11-11  Boris Hu  <boris.hu@intel.com>
+
+	* sysdeps/unix/sysv/linux/i386/bits/posix_opt.h:
+	Add _POSIX_THREAD_PRIO_INHERIT, _POSIX_THREAD_PRIO_PROTECT,
+	_POSIX_THREAD_ROBUST_MUTEX_NP.
+	* glibc/sysdeps/generic/bits/confname.h:
+	Add _SC_THREAD_ROBUST_MUTEX_NP.
+	* glibc/sysdeps/posix/sysconf.c:
+	Add _SC_THREAD_ROBUST_MUTEX_NP support.
+	
+2003-11-10  Boris Hu  <boris.hu@intel.com>
+
+	* sysdeps/unix/sysv/linux/i386/pthread_cond_wait.c:
+	Pass the address of mutex->__data.__lock to the kernel instead
of 
+	mutex.
+	* sysdeps/unix/sysv/linux/i386/pthread_cond_timedwait.c:
Likewise.
+	
+2003-11-07  Boris Hu  <boris.hu@intel.com>
+
+	* sysdeps/unix/sysv/linux/i386/lowlevelrtlock.c:
+	Add timespec calculation in __lll_cond_timedwait().
+	* sysdeps/unix/sysv/linux/i386/lowlevelrtlock.c:
+	acas()-> atomic_compare_and_exchange_val_acq()
+	__vfulock_acas()->!atomic_comare_and_exchange_bool_acq()
+	* pthread_mutex_lock_waiting_for_mutex_whose_owner_died_np:
+	(void *)-1 to indicate endless waiting instead of 0. 
+	* pthread_mutex_trylock.c: Likewise.
+	* pthread_mutex_lock.c: Likewise.
+	* rtnptl___1_6: pthread_cond_* are sitting on ufucond layer now.
+	
+2003-11-06  Boris Hu  <boris.hu@intel.com>
+
+	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S:
Removed.
+	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S:
Removed.
+	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S:
Removed.
+	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S:
Removed.
+	* sysdeps/unix/sysv/linux/i386/i586/pthread_cond_broadcast.S:
Removed.
+	* sysdeps/unix/sysv/linux/i386/i586/pthread_cond_wait.S:
Removed.
+	* sysdeps/unix/sysv/linux/i386/i586/pthread_cond_timedwait.S:
Removed.
+	* sysdeps/unix/sysv/linux/i386/i586/pthread_cond_signal.S:
Removed.
+	* sysdeps/unix/sysv/linux/i386/i686/pthread_cond_broadcast.S:
Removed.
+	* sysdeps/unix/sysv/linux/i386/i686/pthread_cond_wait.S:
Removed.
+	* sysdeps/unix/sysv/linux/i386/i686/pthread_cond_timedwait.S:
Removed.
+	* sysdeps/unix/sysv/linux/i386/i686/pthread_cond_signal.S:
Removed.
+	* sysdeps/unix/sysv/linux/i386/pthread_cond_broadcast.c: New
file.
+	* sysdeps/unix/sysv/linux/i386/pthread_cond_signal.c: New file.
+	* sysdeps/unix/sysv/linux/i386/pthread_cond_timedwait.c: New
file.
+	* sysdeps/unix/sysv/linux/i386/pthread_cond_wait.c: New file.
+	* sysdeps/unix/sysv/linux/i386/lowlevelrtlock.c:
+	Add __lll_fucond_* functions.
+	* sysdeps/unix/sysv/linux/i386/lowlevllock.h:
+	Add __lll_fucond_* functions declaration.
+	
+2003-11-06  Boris Hu  <boris.hu@intel.com>
+
+	* pthread_mutexattr_getprotocol.c:
+	RM bit and PI/PP bit swaps according FULOCK_FL_*. Update 
+	its comments.
+	* pthread_mutexattr_setprotocol.c: Likewise.
+	* pthread_mutexattr_setrobust_np.c: Likewise.
+	* pthread_mutexattr_getrobust_np.c: Likewise.
+	* sysdeps/unix/sysv/linux/internaltypes.h: Likewise.
+	
+2003-11-06  Boris Hu  <boris.hu@intel.com>
+	* sysdeps/unix/sysv/linux/i386/lowlevellock.h:
+	FUSYN_FL_* modification according to FULOCK_FL_* definition.
+	* sysdeps/unix/sysv/linux/i386/lowlevelrtlock.c:
+	There is a bit difference between the user space flags and the
kernel.
+	* sysdeps/pthread/pthread.h:
+	Robust mutex states update according to fulock_con.
+	* pthread_mutex_setconsistency_np.c: Likewise.
+	* pthread_mutex_setconsistency_np.c: 
+	Return 0 instead of the value of sys_ufulock_consistency().
+	* rtnptl___1_5: It passes all robust-mode2 tests.
+	
+2003-11-05  Boris Hu  <boris.hu@intel.com>
+
+	* pthread_mutex_lock_waiting_for_mutex_whose_owner_died_np.c:
New file.
+	* pthread_mutex_owner_dead_np.c: Removed.
+	* Makefile: Rename pthread_mutex_owner_dead_np to 
+	pthread_mutex_lock_waiting_for_mutex_whose_owner_died_np.
+	* Versions: Likewise.
+	* pthread_mutex_lock.c: Likewise.
+	* pthread_mutex_timedlock.c: Likewise.
+	* pthread_mutex_trylock.c: Likewise.
+
+2003-11-05  Boris Hu  <boris.hu@intel.com>
+
+	* pthread_mutex_owner_dead_np.c: New file.
+	* Makefile: Add pthread_mutex_owner_dead_np.
+	* Versions: Add pthread_mutex_owner_dead_np.
+	
+	* pthread_mutex_lock.c:
+	ESRCH->EOWNERDEAD, EBADR->ENOTRECOVERABLE according to fusyn
+	implementation.
+	abort() -> pthread_mutex_owner_dead_np() when owner dead occurs
+	to non-RM mutex. 
+	* pthread_mutex_timedlock.c: Likewise.
+	* pthread_mutex_trylock.c: Likewise.
+	* rtnptl___1_4: With pthread_mutex_owner_dead_np support.
+	
+2003-11-04  Boris Hu  <boris.hu@intel.com>
+
+	* TODO.rtnptl: New file.
+	* README.rtnptl: New file.
+	* pthread_mutexattr_getprioceiling.c: New file.
+	* pthread_mutexattr_setprioceiling.c: New file.
+	* pthread_mutex_getprioceiling.c: New file.
+	* pthread_mutex_setprioceiling.c: New file.
+	* sysdeps/unix/sysv/linux/internaltypes.h:
+	Bit 0-6 of pthread_mutexattr is reserved to record priority
+	ceiling value.
+	Add PRIOCEILING_MASK and MAX_USER_RT_PRIO definition.
+	* sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h:
+	Add __prioceiling to pthread_mutex_t;
+	* Makefile: Add pthread_mutexattr_{g,s}etprioceiling,
+	pthread_mutex_{g,s}etprioceiling. 
+	* Versions: Add pthread_mutexattr_{g,s}etprioceiling,
+	pthread_mutex_{g,s}etprioceiling. 
+	* pthread_mutex_init.c:
+	Add priority ceiling support.
+	* sysdeps/pthread/pthread.h:
+	Add pthread_mutexattr_{g,s}etprioceiling, 
+	pthread_mutex_{g,s}etprioceiling protype.
+	* rtnptl___1_3: The tag records after adding the get/set
+	priority ceiling value features.
+
+2003-10-31  Boris Hu  <boris.hu@intel.com>
+
+        * rtnptl___1_2:
+	Pass all nptl-0.60 test cases except tst-cond2 and tst-signal3
+	according to the diff between outputs of the normal nptl-0.60
+	and that of rtnptl___1_2.
+
+2003-10-31  Boris Hu  <boris.hu@intel.com>
+
+        * sysdeps/unix/sysv/linux/i386/lowlevelrtlock.c:
+	Add EINTR support. Continue to try to get the lock when the
return
+	value of sys_ufulock_lock() is -EINTR instead of directly
returnning. 
+
+2003-10-29  Boris Hu  <boris.hu@intel.com>
+
+	* sysdeps/unix/sysv/linux/i386/lowlevellock.h: 
+	do {} while(0) protection to the debug function.
+
+2003-10-29  Boris Hu  <boris.hu@intel.com>
+
+	* sysdeps/unix/sysv/linux/i386/lowlevelrtlock.c
(__lll_rtmutex_trylock): 
+	Update it according to kernel-lock.h change.
+
+2003-10-29  Boris Hu  <boris.hu@intel.com>
+
+	* nptl/sysdeps/unix/sysv/linux/i386/lowlevelrtlock.c: Change 
+	___lll_rtmutex_unlock() according to kernel-lock.h change.
+	* Add rtnptl___1_1 tag: The version builds ok and passes many 
+	tests including tst-mutex5, tst-mutex7 against fusyn-1.6. But 
+	it would fail in tst-cond2.
+	
+2003-10-28  Boris Hu  <boris.hu@intel.com>
+
+	* nptl/sysdeps/unix/sysv/linux/pthread_mutex_cond_lock.c:
Redirect
+	pthread_mutex_cond_lock() to lll_rtmutex_lock() instead of 
+	lll_mutex_cond_lock().
+	
+2003-10-28  Boris Hu  <boris.hu@intel.com>
+
+	* nptl/sysdeps/unix/sysv/linux/i386/lowlevelrtlock.c: Pass 
+	flags & FULOCK_FL_USER_MK to sys_ufulock_*() instead of flags
+	directly.
+
+2003-10-26  Boris Hu  <boris.hu@intel.com>
+
+	* nptl/sysdeps/unix/sysv/linux/i386/lowlevelrtlock.c: Get the 
+	return value of INLINE_SYSCALL from errno when it returns -1.
+
+2003-10-26  Boris Hu  <boris.hu@intel.com>
+
+	* nptl/sysdeps/unix/sysv/linux/i386/lowlevelrtlock.c: New file.
+	* nptl/sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S:
+	Code clean.
+	* nptl/sysdeps/unix/sysv/linux/i386/lowlevellock.h: Move 
+	___lll_rtmutex_* into lowlevelrtmutex.c to accelerate the
recompile
+	process.
+	* nptl/Makefile: Add lowlevelrtlock.c.
+
+2003-10-25  Boris Hu  <boris.hu@intel.com>
+
+	* nptl/sysdeps/unix/sysv/linux/i386/lowlevellock.h: 
+	___lll_rtmutex_timedlock() pass sys_ufulock_lock() with the
relative
+	timespec instead of the absolute timespec.
+
+2003-10-21  Boris Hu  <boris.hu@intel.com>
+
+	* The first version against fusyn.
+
+		
+
--- robustmutexes/rtnptl/src/nptl/Makefile:1.1.1.1.2.16	Thu Jul 22
04:02:25 2004
+++ robustmutexes/rtnptl/src/nptl/Makefile	Thu Jul 22 04:16:11 2004
@@ -51,10 +51,29 @@
 		      pthread_mutex_init pthread_mutex_destroy \
 		      pthread_mutex_lock pthread_mutex_trylock \
 		      pthread_mutex_timedlock pthread_mutex_unlock \
+		      pthread_mutex_getconsistency_np \
+		      pthread_mutex_setconsistency_np \
+		      pthread_mutex_consistent_np  \
+		      pthread_mutex_ctl_np \
+		      pthread_mutex_getprioceiling \
+		      pthread_mutex_setprioceiling \
+		      pthread_mutex_getunlock_np   \
+		      pthread_mutex_setunlock_np   \
+		      pthread_mutex_whose_owner_dead_np \
 		      pthread_mutexattr_init pthread_mutexattr_destroy \
 		      pthread_mutexattr_getpshared \
 		      pthread_mutexattr_setpshared \
 		      pthread_mutexattr_gettype
pthread_mutexattr_settype \
+		      pthread_mutexattr_getrobust_np \
+	              pthread_mutexattr_setrobust_np \
+		      pthread_mutexattr_getprotocol  \
+		      pthread_mutexattr_setprotocol  \
+		      pthread_mutexattr_getprioceiling  \
+		      pthread_mutexattr_setprioceiling  \
+		      pthread_mutexattr_getfast_np \
+		      pthread_mutexattr_setfast_np \
+		      pthread_mutexattr_getunlock_np \
+		      pthread_mutexattr_setunlock_np \
 		      pthread_rwlock_init pthread_rwlock_destroy \
 		      pthread_rwlock_rdlock pthread_rwlock_timedrdlock \
 		      pthread_rwlock_wrlock pthread_rwlock_timedwrlock \
@@ -100,6 +119,7 @@
 		      pt-longjmp pt-cleanup\
 		      cancellation \
 		      lowlevellock \
+		      lowlevelrtlock \
 		      pt-vfork \
 		      ptw-write ptw-read ptw-close ptw-fcntl ptw-accept
\
 		      ptw-connect ptw-recv ptw-recvfrom ptw-recvmsg
ptw-send \
@@ -236,7 +256,10 @@
 	tst-sched1 \
 	tst-backtrace1 \
 	tst-oddstacklimit \
-	tst-vfork1 tst-vfork2 tst-vfork1x tst-vfork2x
+	tst-vfork1 tst-vfork2 tst-vfork1x tst-vfork2x \
+	tst-fast1 \
+	tst-serial1 \
+	tst-options1 
 
 # Files which must not be linked with libpthread.
 tests-nolibpthread = tst-unload
--- robustmutexes/rtnptl/src/nptl/Versions:1.1.1.1.2.2	Tue May  4
14:21:22 2004
+++ robustmutexes/rtnptl/src/nptl/Versions	Tue May 25 05:16:58 2004
@@ -212,6 +212,19 @@
 
     # Proposed API extensions.
     pthread_tryjoin_np; pthread_timedjoin_np;
+    pthread_mutexattr_getrobust_np; pthread_mutexattr_setrobust_np;
+    pthread_mutex_lock_waiting_for_mutex_whose_owner_died_np;
+    	
+    # 1003.1-2001 function (realtime)
+    pthread_mutexattr_getprotocol; pthread_mutexattr_setprotocol;
+    pthread_mutex_getconsistency_np; pthread_mutex_setconsistency_np;
+    pthread_mutex_consistent_np;
+    pthread_mutex_ctl_np;
+    pthread_mutexattr_getprioceiling; pthread_mutexattr_setprioceiling;
+    pthread_mutex_getprioceiling; pthread_mutex_setprioceiling;
+    pthread_mutexattr_getfast_np; pthread_mutexattr_setfast_np;
+    pthread_mutexattr_getunlock_np; pthread_mutexattr_setunlock_np;
+    pthread_mutex_getunlock_np; pthread_mutex_setunlock_np;
 
     # New cancellation cleanup handling.
     __pthread_register_cancel; __pthread_unregister_cancel;
--- robustmutexes/rtnptl/src/nptl/pthreadP.h:1.1.1.1.2.4	Wed Mar
31 11:10:34 2004
+++ robustmutexes/rtnptl/src/nptl/pthreadP.h	Fri May 21 06:17:50 2004
@@ -441,4 +441,8 @@
 
 extern void __nptl_deallocate_tsd (void) attribute_hidden;
 
+
+extern int is_mutexattr_robust (const struct pthread_mutexattr *attr);
+extern int is_mutex_robust (const pthread_mutex_t *mutex);
+
 #endif	/* pthreadP.h */
--- robustmutexes/rtnptl/src/nptl/pthread_cond_destroy.c:1.1.1.1
Thu Oct  9 06:54:43 2003
+++ robustmutexes/rtnptl/src/nptl/pthread_cond_destroy.c	Mon Jul
19 02:48:08 2004
@@ -25,6 +25,7 @@
 __pthread_cond_destroy (cond)
      pthread_cond_t *cond;
 {
+  lll_fuqueue_ctl(&cond->__data.__futex, FUQUEUE_CTL_RELEASE);
   return 0;
 }
 versioned_symbol (libpthread, __pthread_cond_destroy,
--- /dev/null	Fri Jul 23 03:18:16 2004
+++ robustmutexes/rtnptl/src/nptl/pthread_mutex_consistent_np.c	Tue Mar
30 09:20:22 2004
@@ -0,0 +1,22 @@
+/*
+ *  (C) 2004 Intel Corporation
+ *  Boris Hu <boris.hu@intel.com>.
+ *
+ *  Distributed under the FSF's LGPL license, v2 or later. */
+
+#include <errno.h>
+#include "pthreadP.h"
+#include <bits/posix_opt.h>
+
+int 
+pthread_mutex_consistent_np (pthread_mutex_t *mutex)
+{
+    int result;
+
+#ifndef _POSIX_THREAD_PRIO_INHERIT
+    return ENOSYS;
+#endif
+    result = lll_rtmutex_set_consistency (mutex->__data.__lock,
+
PTHREAD_MUTEX_ROBUST_CONSISTENT_NP);
+    return result;
+}
--- /dev/null	Fri Jul 23 03:18:16 2004
+++ robustmutexes/rtnptl/src/nptl/pthread_mutex_ctl_np.c	Mon Jul
19 08:38:39 2004
@@ -0,0 +1,19 @@
+/*
+ *  (C) 2003-2004 Intel Corporation
+ *  Inaky Perez-Gonzalez <inaky.perez-gonzalez@intel.com>
+ *
+ *  Allow access to low-level operations on fusyn from the POSIX
+ *  layer. Don't touch if you don't know where it hurts.
+ *
+ *  Distributed under the FSF's LGPL license, v2 or later.
+ */
+
+
+#include <errno.h>
+#include "pthreadP.h"
+
+int 
+pthread_mutex_ctl_np(pthread_mutex_t *mutex, int ctl)
+{
+  return lll_rtmutex_ctl (mutex->__data.__lock, ctl);
+}
--- robustmutexes/rtnptl/src/nptl/pthread_mutex_destroy.c:1.1.1.1
Thu Oct  9 06:54:44 2003
+++ robustmutexes/rtnptl/src/nptl/pthread_mutex_destroy.c	Mon Jul
19 02:48:08 2004
@@ -2,6 +2,9 @@
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
 
+   Redirect lowlevellock to use Fast User SYNchronization(fusyn).
+   Boris Hu <boris.hu@intel.com>, 2004.
+
    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
@@ -28,6 +31,8 @@
   if (mutex->__data.__nusers != 0)
     return EBUSY;
 
+  lll_rtmutex_set_consistency (mutex->__data.__lock,
+                               PTHREAD_MUTEX_ROBUST_RELEASE_NP);
   return 0;
 }
 strong_alias (__pthread_mutex_destroy, pthread_mutex_destroy)
--- /dev/null	Fri Jul 23 03:18:16 2004
+++ robustmutexes/rtnptl/src/nptl/pthread_mutex_getconsistency_np.c
Fri May 21 06:17:50 2004
@@ -0,0 +1,18 @@
+/*
+ *  (C) 2002-2003 Intel Corporation
+ *  Bing Wei Liu <bing.wei.liu@intel.com>.
+ *
+ *  Reimplement to sync with fusyn and POSIX spec.
+ *  (C) 2003 Intel Corporation Boris Hu <boris.hu@intel.com>
+ *  
+ *  Distributed under the FSF's LGPL license, v2 or later. */
+
+
+#include <errno.h>
+#include "pthreadP.h"
+
+int 
+pthread_mutex_getconsistency_np(pthread_mutex_t *mutex, int *state)
+{
+  return lll_rtmutex_get_consistency (mutex->__data.__lock, state);
+}
--- /dev/null	Fri Jul 23 03:18:16 2004
+++ robustmutexes/rtnptl/src/nptl/pthread_mutex_getprioceiling.c
Tue Apr 13 11:37:02 2004
@@ -0,0 +1,24 @@
+/*
+ *  (C) 2003 Intel Corporation
+ *  Boris Hu <boris.hu@intel.com>
+ *
+ *  Distributed under the FSF's LGPL license, v2 or later. */
+
+
+#include <pthreadP.h>
+
+
+int
+pthread_mutex_getprioceiling (const pthread_mutex_t *__mutex,
+                              int *__prioceiling)
+{
+  /* Use Bit PRIOCEILING_OFFSET - PRIOCEILING_OFFSET + 6 to
+   * indicate the priority ceiling value.
+   * -- MIN_USER_RT_PRIO ~~ MAX_USER_RT_PRIO
+   */
+
+  *__prioceiling = (__mutex->__data.__kind
+    & PRIOCEILING_MASK) >> PRIOCEILING_OFFSET;
+  
+  return 0;
+}
--- /dev/null	Fri Jul 23 03:18:16 2004
+++ robustmutexes/rtnptl/src/nptl/pthread_mutex_getunlock_np.c	Tue May
25 05:16:58 2004
@@ -0,0 +1,31 @@
+/*
+ *  (C) 2004 Intel Corporation
+ *  Boris Hu <boris.hu@intel.com>
+ *
+ *  Distributed under the FSF's LGPL license, v2 or later. */
+
+
+#include <pthreadP.h>
+#include <errno.h>
+
+int
+pthread_mutex_getunlock_np (const pthread_mutex_t *mutex,
+                            int *serial_mode)
+{
+  switch ((mutex->__data.__kind & FULOCK_UNLOCK_TYPE_MASK)
+          >> FULOCK_UNLOCK_TYPE_OFFSET) {
+  case FULOCK_UNLOCK_SERIAL:
+    *serial_mode = PTHREAD_MUTEX_UNLOCK_SERIAL_NP;
+    break;
+  case FULOCK_UNLOCK_PARALLEL:
+    *serial_mode = PTHREAD_MUTEX_UNLOCK_PARALLEL_NP;
+    break;
+  case FULOCK_UNLOCK_AUTO:
+    *serial_mode = PTHREAD_MUTEX_UNLOCK_AUTO_NP;
+    break;
+  default:
+    return EINVAL;
+  }
+
+  return 0;
+}
--- robustmutexes/rtnptl/src/nptl/pthread_mutex_init.c:1.1.1.1.2.1
Fri Mar 26 02:41:35 2004
+++ robustmutexes/rtnptl/src/nptl/pthread_mutex_init.c	Wed Jun 23
09:45:05 2004
@@ -2,6 +2,9 @@
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
 
+   Redirect lowlevellock to use Fast User SYNchronization(fusyn).
+   Boris Hu <boris.hu@intel.com>, 2004.
+
    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
@@ -26,6 +29,7 @@
   {
     /* Default is a normal mutex, not shared between processes.  */
     .mutexkind = PTHREAD_MUTEX_NORMAL
+                | (FULOCK_UNLOCK_AUTO << FULOCK_UNLOCK_TYPE_OFFSET)
   };
 
 
@@ -42,15 +46,22 @@
 
   /* Clear the whole variable.  */
   memset (mutex, '\0', __SIZEOF_PTHREAD_MUTEX_T);
-
+  
   /* Copy the values from the attribute.  */
-  mutex->__data.__kind = imutexattr->mutexkind & ~0x80000000;
+  mutex->__data.__kind = imutexattr->mutexkind;
+
+  if (__builtin_expect (!(mutex->__data.__kind & PRIOCEILING_MASK), 1))
+    mutex->__data.__kind |= (MIN_USER_RT_PRIO << PRIOCEILING_OFFSET);
 
   /* Default values: mutex not used yet.  */
   // mutex->__count = 0;	already done by memset
   // mutex->__owner = 0;	already done by memset
   // mutex->__nusers = 0;	already done by memset
   // mutex->__spins = 0;	already done by memset
+
+  if (__builtin_expect (is_mutexattr_robust (imutexattr), 0))
+    lll_rtmutex_set_consistency (mutex->__data.__lock,
+                                 PTHREAD_MUTEX_ROBUST_INIT_NP);
 
   return 0;
 }

Boris Hu (Hu Jiangtao)
Intel China Software Center 
86-021-5257-4545#1277
iNET: 8-752-1277
************************************
There are my thoughts, not my employer's.
************************************
"gpg --recv-keys --keyserver wwwkeys.pgp.net 0FD7685F"
{0FD7685F:CFD6 6F5C A2CB 7881 725B  CEA0 956F 9F14 0FD7 685F}

Attachment: rtnptl-2.3.patch-1
Description: rtnptl-2.3.patch-1


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]