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 ibm/2.22/master updated. glibc-2.22-50-g3237210


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, ibm/2.22/master has been updated
       via  3237210aa69f35cb7476c7dee454578e6765fdbe (commit)
       via  7ef18706468de06251243f6625c59d7f4fe28734 (commit)
       via  a33d347c181cfa0d84c37e9961ebf030495ed248 (commit)
       via  3803874b4a368eb8245fbf091651b6c8edd90b23 (commit)
       via  b995d95a5943785be3ab862b2d3276f3b4a22481 (commit)
       via  4660fb2714c52dba4addab496b3f1ae8e6c633b3 (commit)
       via  287de30e170cb765ed326d23d22791a81aab6e0f (commit)
       via  43f189b0032fbce67fc0c0f4e122e917cd232670 (commit)
       via  a73a62562a198072ab417e28d4c0315a78c49cfe (commit)
       via  7ad78f869815a73dc26c93b72d156812d93eb026 (commit)
       via  c6d1664014de6e9f36aba21e8c84419885b396d8 (commit)
       via  7a5d3129638db8a832e2c3090d263bbc1b1b919b (commit)
       via  795b5d3658c0fc782cf0511ce15490e5f905393c (commit)
       via  0c5f5b233964aa97d1aa470488a1731c022ff615 (commit)
       via  3b54d911809643fb6a293807333b7f2cf15a3b50 (commit)
      from  ec54e4f7c24bfd5f3c9ecb6140e28fa67ae25801 (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=3237210aa69f35cb7476c7dee454578e6765fdbe

commit 3237210aa69f35cb7476c7dee454578e6765fdbe
Author: Paul Murphy <murphyp@linux.vnet.ibm.com>
Date:   Wed Oct 28 17:34:31 2015 -0500

    powerpc: More elision improvements
    
    __lll_trylock_elision sets the adapt_count variable too
    aggressively, and incorrectly on persistent aborts.  Taking
    a cue from s390, adapt_count is only updated if the lock
    is locked, or a persistent failure occurs.
    
    In addition, the abort codes have been renumbered and
    refactored for clarity.  As it stands, glibc only cares
    if the abort is persistent or not.
    
    All aborts are now persistent, excepting a busy lock.  This
    includes changing _ABORT_NESTED_TRYLOCK into a persistent
    abort.
    
    	* sysdeps/unix/sysv/linux/powerpc/elision-trylock.c
    	(__lll_trylock_elision): Fix setting of adapt_count.
    	* sysdeps/unix/sysv/linux/powerpc/htm.h
    	(_ABORT_PERSISTENT): Define to clarify persistent aborts.
    	(_ABORT_NESTED_TRYLOCK): Renumber, and make persistent.
    	(_ABORT_SYSCALL): Renumber, and clarify definition.
    	(_ABORT_LOCK_BUSY): Renumber, make non-persistent.
    
    (cherry picked from commit 86b4939846caf2bb072bba6057e1dc3ad187c2c2)
    
    Conflicts:
    	sysdeps/unix/sysv/linux/powerpc/elision-trylock.c

diff --git a/ChangeLog b/ChangeLog
index d960bc2..e2a9a4a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,15 @@
 2016-02-22  Paul E. Murphy  <murphyp@linux.vnet.ibm.com>
 
+	* sysdeps/unix/sysv/linux/powerpc/elision-trylock.c
+	(__lll_trylock_elision): Fix setting of adapt_count.
+	* sysdeps/unix/sysv/linux/powerpc/htm.h
+	(_ABORT_PERSISTENT): Define to clarify persistent aborts.
+	(_ABORT_NESTED_TRYLOCK): Renumber, and make persistent.
+	(_ABORT_SYSCALL): Renumber, and clarify definition.
+	(_ABORT_LOCK_BUSY): Renumber, make non-persistent.
+
+2016-02-22  Paul E. Murphy  <murphyp@linux.vnet.ibm.com>
+
 	* sysdeps/unix/sysv/linux/powerpc/htm.h	(__libc_tbegin): Remove
 	semicolon.
 	(__libc_tend): Likewise.
diff --git a/sysdeps/unix/sysv/linux/powerpc/elision-trylock.c b/sysdeps/unix/sysv/linux/powerpc/elision-trylock.c
index edec155..5995e77 100644
--- a/sysdeps/unix/sysv/linux/powerpc/elision-trylock.c
+++ b/sysdeps/unix/sysv/linux/powerpc/elision-trylock.c
@@ -45,8 +45,12 @@ __lll_trylock_elision (int *futex, short *adapt_count)
       if (*futex == 0)
 	return 0;
 
-      /* Lock was busy.  Fall back to normal locking.  */
-      __libc_tabort (_ABORT_LOCK_BUSY);
+      /* Lock was busy.  This is never a nested transaction.
+         End it, and set the adapt count.  */
+      __libc_tend (0);
+
+      if (aconf.skip_lock_busy > 0)
+	*adapt_count = aconf.skip_lock_busy;
     }
   else
     {
@@ -58,9 +62,6 @@ __lll_trylock_elision (int *futex, short *adapt_count)
 	  if (aconf.skip_trylock_internal_abort > 0)
 	    *adapt_count = aconf.skip_trylock_internal_abort;
 	}
-
-	if (aconf.skip_lock_busy > 0)
-	  *adapt_count = aconf.skip_lock_busy;
     }
 
 use_lock:
diff --git a/sysdeps/unix/sysv/linux/powerpc/htm.h b/sysdeps/unix/sysv/linux/powerpc/htm.h
index 7b49817..75c99c2 100644
--- a/sysdeps/unix/sysv/linux/powerpc/htm.h
+++ b/sysdeps/unix/sysv/linux/powerpc/htm.h
@@ -160,10 +160,12 @@
 
 #endif /* __ASSEMBLER__ */
 
-/* Definitions used for TEXASR Failure code (bits 0:6), they need to be even
-   because tabort. always sets the first bit.  */
-#define _ABORT_LOCK_BUSY       0x3f   /* Lock already used.  */
-#define _ABORT_NESTED_TRYLOCK  0x3e   /* Write operation in trylock.  */
-#define _ABORT_SYSCALL         0x3d   /* Syscall issued.  */
+/* Definitions used for TEXASR Failure code (bits 0:7).  If the failure
+   should be persistent, the abort code must be odd.  0xd0 through 0xff
+   are reserved for the kernel and potential hypervisor.  */
+#define _ABORT_PERSISTENT      0x01   /* An unspecified persistent abort.  */
+#define _ABORT_LOCK_BUSY       0x34   /* Busy lock, not persistent.  */
+#define _ABORT_NESTED_TRYLOCK  (0x32 | _ABORT_PERSISTENT)
+#define _ABORT_SYSCALL         (0x30 | _ABORT_PERSISTENT)
 
 #endif

http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=7ef18706468de06251243f6625c59d7f4fe28734

commit 7ef18706468de06251243f6625c59d7f4fe28734
Merge: ec54e4f a33d347
Author: Tulio Magno Quites Machado Filho <tuliom@linux.vnet.ibm.com>
Date:   Mon Feb 22 16:20:34 2016 -0300

    Merge branch 'release/2.22/master' into ibm/2.22/master


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

Summary of changes:
 ChangeLog                                         |  112 +++++++++
 NEWS                                              |   18 ++-
 catgets/Makefile                                  |    9 +-
 catgets/catgets.c                                 |   19 +-
 catgets/open_catalog.c                            |   23 +-
 catgets/tst-catgets.c                             |   31 +++
 locale/loadlocale.c                               |    7 +-
 misc/Makefile                                     |    2 +-
 misc/bug18240.c                                   |   97 ++++++++
 misc/hsearch_r.c                                  |   30 ++-
 resolv/nss_dns/dns-host.c                         |  111 +++++++++-
 resolv/res_query.c                                |    3 +
 resolv/res_send.c                                 |  264 +++++++++++++++------
 sysdeps/hppa/start.S                              |   16 +-
 sysdeps/powerpc/nptl/elide.h                      |    8 +-
 sysdeps/powerpc/sysdep.h                          |    2 +-
 sysdeps/unix/sysv/linux/alpha/libc.abilist        |    6 +-
 sysdeps/unix/sysv/linux/hppa/libc.abilist         |    6 +-
 sysdeps/unix/sysv/linux/hppa/syscall.c            |    3 +-
 sysdeps/unix/sysv/linux/hppa/sysdep.h             |   61 +++--
 sysdeps/unix/sysv/linux/powerpc/elision-lock.c    |    4 +-
 sysdeps/unix/sysv/linux/powerpc/elision-trylock.c |   15 +-
 sysdeps/unix/sysv/linux/powerpc/elision-unlock.c  |    2 +-
 sysdeps/unix/sysv/linux/powerpc/htm.h             |   51 ++++-
 time/strftime_l.c                                 |   20 +-
 time/tst-strftime.c                               |   52 ++++-
 26 files changed, 806 insertions(+), 166 deletions(-)
 create mode 100644 misc/bug18240.c


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]