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] |
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] |