[S390,PPC] Implement FUTEX_WAIT_BITSET for timedwait functions
authorSiddhesh Poyarekar <siddhesh@redhat.com>
Mon, 5 Nov 2012 15:42:10 +0000 (21:12 +0530)
committerSiddhesh Poyarekar <siddhesh@redhat.com>
Mon, 5 Nov 2012 15:42:52 +0000 (21:12 +0530)
commit8f861542dd0603bef99e126e509ece89514c1eeb
tree083f3bd20edfa09a2341e0340013c0781b4696ad
parent155ee340b875834693fbd1b7401af7fe88ace04d
[S390,PPC] Implement FUTEX_WAIT_BITSET for timedwait functions

Since the FUTEX_WAIT operation takes a relative timeout, the
pthread_cond_timedwait and other timed function implementations have
to get a relative timeout from the absolute timeout parameter it gets
before it makes the futex syscall.  This value is then converted back
into an absolute timeout within the kernel.  This is a waste and has
hence been improved upon by a FUTEX_WAIT_BITSET operation (OR'd with
FUTEX_CLOCK_REALTIME to make the kernel use the realtime clock instead
of the default monotonic clock).  This was implemented only in the x86
and sh assembly code and not in the C code.  This patch implements
support for FUTEX_WAIT_BITSET whenever available (since linux-2.6.29)
for s390 and powerpc.
nptl/ChangeLog
nptl/pthread_cond_timedwait.c
nptl/pthread_rwlock_timedrdlock.c
nptl/pthread_rwlock_timedwrlock.c
nptl/sysdeps/unix/sysv/linux/lowlevelrobustlock.c
nptl/sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
nptl/sysdeps/unix/sysv/linux/s390/lowlevellock.h