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-300-gb91a333


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  b91a333ecb223a4bb104ff5a64c9ee5a194789a3 (commit)
      from  a9558b49b3336aba143b68279af90d69e2d92479 (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=b91a333ecb223a4bb104ff5a64c9ee5a194789a3

commit b91a333ecb223a4bb104ff5a64c9ee5a194789a3
Author: Stefan Liebler <stli@linux.vnet.ibm.com>
Date:   Mon May 9 11:05:45 2016 +0200

    S390: Add support for vdso getcpu symbol.
    
    This patch adds support for symbol __kernel_getcpu in vDSO,
    which is available with kernel 4.5.
    Now sched_getcpu is using this symbol if available in mapped vDSO
    by defining macro HAVE_GETCPU_VSYSCALL. If not available at runtime,
    the former syscall is used.

diff --git a/ChangeLog b/ChangeLog
index 4677e87..1f5261a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2016-05-09  Stefan Liebler  <stli@linux.vnet.ibm.com>
+
+	* sysdeps/unix/sysv/linux/s390/init-first.c:
+	Add VDSO_SYMBOL(getcpu).
+	(_libc_vdso_platform_setup): Initialize VDSO_SYMBOL(getcpu).
+	* sysdeps/unix/sysv/linux/s390/libc-vdso.h:
+	Add VDSO_SYMBOL(getcpu).
+	* sysdeps/unix/sysv/linux/s390/s390-32/sysdep.h:
+	New define HAVE_GETCPU_VSYSCALL.
+	* sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h: Likewise.
+
 2016-05-08  H.J. Lu  <hongjiu.lu@intel.com>
 
 	* sysdeps/i386/cacheinfo.c: Include <sysdeps/x86/cacheinfo.c>
diff --git a/sysdeps/unix/sysv/linux/s390/init-first.c b/sysdeps/unix/sysv/linux/s390/init-first.c
index d3a20fd..7498cbe 100644
--- a/sysdeps/unix/sysv/linux/s390/init-first.c
+++ b/sysdeps/unix/sysv/linux/s390/init-first.c
@@ -29,6 +29,8 @@ long int (*VDSO_SYMBOL(clock_gettime)) (clockid_t, struct timespec *)
 long int (*VDSO_SYMBOL(clock_getres)) (clockid_t, struct timespec *)
   __attribute__ ((nocommon));
 
+long int (*VDSO_SYMBOL(getcpu)) (unsigned *, unsigned *, void *)
+   attribute_hidden;
 
 static inline void
 _libc_vdso_platform_setup (void)
@@ -46,6 +48,10 @@ _libc_vdso_platform_setup (void)
   p = _dl_vdso_vsym ("__kernel_clock_getres", &linux2629);
   PTR_MANGLE (p);
   VDSO_SYMBOL (clock_getres) = p;
+
+  p = _dl_vdso_vsym ("__kernel_getcpu", &linux2629);
+  PTR_MANGLE (p);
+  VDSO_SYMBOL (getcpu) = p;
 }
 
 # define VDSO_SETUP _libc_vdso_platform_setup
diff --git a/sysdeps/unix/sysv/linux/s390/libc-vdso.h b/sysdeps/unix/sysv/linux/s390/libc-vdso.h
index d2a8316..512b3ba 100644
--- a/sysdeps/unix/sysv/linux/s390/libc-vdso.h
+++ b/sysdeps/unix/sysv/linux/s390/libc-vdso.h
@@ -31,6 +31,8 @@ extern long int (*VDSO_SYMBOL(clock_gettime)) (clockid_t, struct timespec *);
 
 extern long int (*VDSO_SYMBOL(clock_getres)) (clockid_t, struct timespec *);
 
+extern long int (*VDSO_SYMBOL(getcpu)) (unsigned *, unsigned *, void *)
+   attribute_hidden;
 #endif
 
 #endif /* _LIBC_VDSO_H */
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/sysdep.h b/sysdeps/unix/sysv/linux/s390/s390-32/sysdep.h
index 3540416..651e1ee 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/sysdep.h
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/sysdep.h
@@ -283,6 +283,7 @@
 #define HAVE_CLOCK_GETRES_VSYSCALL	1
 #define HAVE_CLOCK_GETTIME_VSYSCALL	1
 #define HAVE_GETTIMEOFDAY_VSYSCALL	1
+#define HAVE_GETCPU_VSYSCALL		1
 
 /* This version is for internal uses when there is no desire
    to set errno */
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h b/sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h
index 6f390ff..702b0b6 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h
@@ -289,6 +289,7 @@
 #define HAVE_CLOCK_GETRES_VSYSCALL	1
 #define HAVE_CLOCK_GETTIME_VSYSCALL	1
 #define HAVE_GETTIMEOFDAY_VSYSCALL	1
+#define HAVE_GETCPU_VSYSCALL		1
 
 /* This version is for internal uses when there is no desire
    to set errno */

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

Summary of changes:
 ChangeLog                                     |   11 +++++++++++
 sysdeps/unix/sysv/linux/s390/init-first.c     |    6 ++++++
 sysdeps/unix/sysv/linux/s390/libc-vdso.h      |    2 ++
 sysdeps/unix/sysv/linux/s390/s390-32/sysdep.h |    1 +
 sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h |    1 +
 5 files changed, 21 insertions(+), 0 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]