This is the mail archive of the glibc-cvs@sourceware.org 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]

GNU C Library master sources branch master updated. glibc-2.23-469-gf5c77f7


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, master has been updated
       via  f5c77f78ec03363d5e550c4996deb75ee3f2e32a (commit)
      from  0677af20bb69b91469f0a89aa54bec559a5907e2 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=f5c77f78ec03363d5e550c4996deb75ee3f2e32a

commit f5c77f78ec03363d5e550c4996deb75ee3f2e32a
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date:   Mon May 16 10:35:25 2016 -0300

    Remove __ASSUME_FUTEX_LOCK_PI
    
    This patch removes __ASSUME_FUTEX_LOCK_PI usage and assumes that
    kernel will correctly return if it supports or not
    futex_atomic_cmpxchg_inatomic.
    
    Current PI mutex code already has runtime support by calling
    prio_inherit_missing and returns ENOTSUP if the futex operation fails
    at initialization (it issues a FUTEX_UNLOCK_PI futex operation).
    
    Also, current minimum supported kernel (v3.2) will return ENOSYS if
    futex_atomic_cmpxchg_inatomic is not supported in the system:
    
    kernel/futex.c:
    
    2628 long do_futex(u32 __user *uaddr, int op, u32 val, ktime_t *timeout,
    2629                 u32 __user *uaddr2, u32 val2, u32 val3)
    2630 {
    2631         int ret = -ENOSYS, cmd = op & FUTEX_CMD_MASK;
    [...]
    2667         case FUTEX_UNLOCK_PI:
    2668                 if (futex_cmpxchg_enabled)
    2669                         ret = futex_unlock_pi(uaddr, flags);
    [...]
    2686         return ret;
    2687 }
    
    The futex_cmpxchg_enabled is initialized by calling cmpxchg_futex_value_locked,
    which calls futex_atomic_cmpxchg_inatomic.
    
    For ARM futex_atomic_cmpxchg_inatomic will be either defined (if both
    CONFIG_CPU_USE_DOMAINS and CONFIG_SMP are not defined) or use the
    default generic implementation that returns ENOSYS.
    
    For m68k is uses the default generic implementation.
    
    For mips futex_atomic_cmpxchg_inatomic will return ENOSYS if cpu has no
    'cpu_has_llsc' support (defined by each chip supporte inside kernel).
    
    For sparc, 32-bit kernel will just use default generic implementation,
    while 64-bit kernel has support.
    
    Tested on ARM (v3.8 kernel) and x86_64.
    
    	* nptl/pthread_mutex_init.c [__ASSUME_FUTEX_LOCK_PI]
    	(prio_inherit_missing): Remove define.
    	* sysdeps/unix/sysv/linux/arm/kernel-features.h
    	(__ASSUME_FUTEX_LOCK_PI): Likewise.
    	* sysdeps/unix/sysv/linux/kernel-features.h (__ASSUME_FUTEX_LOCK_PI):
    	Likewise.
    	* sysdeps/unix/sysv/linux/m68k/kernel-features.h
    	(__ASSUME_FUTEX_LOCK_PI): Likewise.
    	* sysdeps/unix/sysv/linux/mips/kernel-features.h
    	(__ASSUME_FUTEX_LOCK_PI): Likewise.
    	* sysdeps/unix/sysv/linux/sparc/kernel-features.h
    	(__ASSUME_FUTEX_LOCK_PI): Likewise.

diff --git a/ChangeLog b/ChangeLog
index 36c3437..53ab8ca 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,18 @@
+2016-06-13  Adhemerval Zanella  <adhemerval.zanella@linaro.org>
+
+	* nptl/pthread_mutex_init.c [__ASSUME_FUTEX_LOCK_PI]
+	(prio_inherit_missing): Remove define.
+	* sysdeps/unix/sysv/linux/arm/kernel-features.h
+	(__ASSUME_FUTEX_LOCK_PI): Likewise.
+	* sysdeps/unix/sysv/linux/kernel-features.h (__ASSUME_FUTEX_LOCK_PI):
+	Likewise.
+	* sysdeps/unix/sysv/linux/m68k/kernel-features.h
+	(__ASSUME_FUTEX_LOCK_PI): Likewise.
+	* sysdeps/unix/sysv/linux/mips/kernel-features.h
+	(__ASSUME_FUTEX_LOCK_PI): Likewise.
+	* sysdeps/unix/sysv/linux/sparc/kernel-features.h
+	(__ASSUME_FUTEX_LOCK_PI): Likewise.
+
 2016-06-11  Paul Pluzhnikov  <ppluzhnikov@google.com>
 
 	[BZ #19670]
diff --git a/nptl/pthread_mutex_init.c b/nptl/pthread_mutex_init.c
index 71ac7bc..6e5acb6 100644
--- a/nptl/pthread_mutex_init.c
+++ b/nptl/pthread_mutex_init.c
@@ -37,7 +37,6 @@ static bool
 prio_inherit_missing (void)
 {
 #ifdef __NR_futex
-# ifndef __ASSUME_FUTEX_LOCK_PI
   static int tpi_supported;
   if (__glibc_unlikely (tpi_supported == 0))
     {
@@ -48,8 +47,6 @@ prio_inherit_missing (void)
       tpi_supported = INTERNAL_SYSCALL_ERRNO (ret, err) == ENOSYS ? -1 : 1;
     }
   return __glibc_unlikely (tpi_supported < 0);
-# endif
-  return false;
 #endif
   return true;
 }
diff --git a/sysdeps/unix/sysv/linux/arm/kernel-features.h b/sysdeps/unix/sysv/linux/arm/kernel-features.h
index 0a9ed77..6ca607e 100644
--- a/sysdeps/unix/sysv/linux/arm/kernel-features.h
+++ b/sysdeps/unix/sysv/linux/arm/kernel-features.h
@@ -23,7 +23,6 @@
    futex_atomic_cmpxchg_inatomic, depending on kernel
    configuration.  */
 #if __LINUX_KERNEL_VERSION < 0x030E03
-# undef __ASSUME_FUTEX_LOCK_PI
 # undef __ASSUME_REQUEUE_PI
 # undef __ASSUME_SET_ROBUST_LIST
 #endif
diff --git a/sysdeps/unix/sysv/linux/kernel-features.h b/sysdeps/unix/sysv/linux/kernel-features.h
index 02c530b..1d3b554 100644
--- a/sysdeps/unix/sysv/linux/kernel-features.h
+++ b/sysdeps/unix/sysv/linux/kernel-features.h
@@ -64,10 +64,6 @@
    configurations).  */
 #define __ASSUME_SET_ROBUST_LIST	1
 
-/* Support for PI futexes was added in 2.6.18 (but some architectures
-   lack futex_atomic_cmpxchg_inatomic in some configurations).  */
-#define __ASSUME_FUTEX_LOCK_PI	1
-
 /* Support for private futexes was added in 2.6.22.  */
 #define __ASSUME_PRIVATE_FUTEX	1
 
diff --git a/sysdeps/unix/sysv/linux/m68k/kernel-features.h b/sysdeps/unix/sysv/linux/m68k/kernel-features.h
index dec04f0..46ec601 100644
--- a/sysdeps/unix/sysv/linux/m68k/kernel-features.h
+++ b/sysdeps/unix/sysv/linux/m68k/kernel-features.h
@@ -51,7 +51,6 @@
 
 /* No support for PI futexes or robust mutexes before 3.10 for m68k.  */
 #if __LINUX_KERNEL_VERSION < 0x030a00
-# undef __ASSUME_FUTEX_LOCK_PI
 # undef __ASSUME_REQUEUE_PI
 # undef __ASSUME_SET_ROBUST_LIST
 #endif
diff --git a/sysdeps/unix/sysv/linux/mips/kernel-features.h b/sysdeps/unix/sysv/linux/mips/kernel-features.h
index e831645..09d5ece 100644
--- a/sysdeps/unix/sysv/linux/mips/kernel-features.h
+++ b/sysdeps/unix/sysv/linux/mips/kernel-features.h
@@ -24,7 +24,6 @@
 /* The MIPS kernel does not support futex_atomic_cmpxchg_inatomic if
    emulating LL/SC.  */
 #if __mips == 1 || defined _MIPS_ARCH_R5900
-# undef __ASSUME_FUTEX_LOCK_PI
 # undef __ASSUME_REQUEUE_PI
 # undef __ASSUME_SET_ROBUST_LIST
 #endif
diff --git a/sysdeps/unix/sysv/linux/sparc/kernel-features.h b/sysdeps/unix/sysv/linux/sparc/kernel-features.h
index 386f230..69c9c7c 100644
--- a/sysdeps/unix/sysv/linux/sparc/kernel-features.h
+++ b/sysdeps/unix/sysv/linux/sparc/kernel-features.h
@@ -34,7 +34,6 @@
 /* 32-bit SPARC kernels do not support
    futex_atomic_cmpxchg_inatomic.  */
 #if !defined __arch64__ && !defined __sparc_v9__
-# undef __ASSUME_FUTEX_LOCK_PI
 # undef __ASSUME_REQUEUE_PI
 # undef __ASSUME_SET_ROBUST_LIST
 #endif

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog                                       |   15 +++++++++++++++
 nptl/pthread_mutex_init.c                       |    3 ---
 sysdeps/unix/sysv/linux/arm/kernel-features.h   |    1 -
 sysdeps/unix/sysv/linux/kernel-features.h       |    4 ----
 sysdeps/unix/sysv/linux/m68k/kernel-features.h  |    1 -
 sysdeps/unix/sysv/linux/mips/kernel-features.h  |    1 -
 sysdeps/unix/sysv/linux/sparc/kernel-features.h |    1 -
 7 files changed, 15 insertions(+), 11 deletions(-)


hooks/post-receive
-- 
GNU C Library master sources


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