This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH] s390: optimize syscall function
- From: Christian Borntraeger <borntraeger at de dot ibm dot com>
- To: Martin Schwidefsky <schwidefsky at de dot ibm dot com>, Zack Weinberg <zackw at panix dot com>
- Cc: Stefan Liebler <stli at linux dot vnet dot ibm dot com>, Andreas Krebbel <krebbel at linux dot vnet dot ibm dot com>, GNU C Library <libc-alpha at sourceware dot org>
- Date: Mon, 19 Jun 2017 09:03:27 +0200
- Subject: Re: [PATCH] s390: optimize syscall function
- Authentication-results: sourceware.org; auth=none
- References: <1497007747-191015-1-git-send-email-borntraeger@de.ibm.com> <20170612074958.71090d0f@mschwideX1> <CAKCAbMiCnG0SaWUW0r5ndhGyjf3FmwGgXQbSqmuVtU96GA_9og@mail.gmail.com> <20170612155701.6ccb0427@mschwideX1>
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.