This is the mail archive of the libc-alpha@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]

Re: [PATCH] s390: optimize syscall function


On 06/19/2017 09:03 AM, Christian Borntraeger wrote:
On 06/12/2017 03:57 PM, Martin Schwidefsky wrote:
On Mon, 12 Jun 2017 08:06:36 -0400
Zack Weinberg <zackw@panix.com> wrote:

On Mon, Jun 12, 2017 at 1:49 AM, Martin Schwidefsky
<schwidefsky@de.ibm.com> wrote:
On Fri,  9 Jun 2017 13:29:07 +0200
Christian Borntraeger <borntraeger@de.ibm.com> wrote:
Since kernel 2.6.0 all Linux version accept the system call number
in register 1 for svc 0. There is no need to have special handling
that uses EX for system calls < 256. This will simplify and speed
up that code.

A microbenchmark doing "syscall(__NR_getpid);" in a loops gets faster
by ~12%.

         * sysdeps/unix/sysv/linux/s390/s390-64/syscall.S: Simplify
         code by always using SVC 0 instead of EX.
         * sysdeps/unix/sysv/linux/s390/s390-64/syscall.S: Likewise.

Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
---
  sysdeps/unix/sysv/linux/s390/s390-32/syscall.S |   12 +++---------
  sysdeps/unix/sysv/linux/s390/s390-64/syscall.S |   12 +++---------
  2 files changed, 6 insertions(+), 18 deletions(-)

NAK. E.g. this from glibc:

sysdeps/unix/sysv/linux/s390/s390-64:

Uh, I believe Christian was proposing to change the exact code you are
quoting.  Did you think he was proposing to remove backward
compatibility for EX from the kernel-side syscall path?

Exactly, this is a glibc patch :-)
The mimimum kernel version for glibc is high enough, so that the kernel
will always understand svc 0, which allows us to get rid of ex in glibc
for svc.




Indeed, I was thinking too much about the kernel side of things.




This patch is okay.
Committed.

Thanks.
Stefan


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