This is the mail archive of the
mailing list for the glibc project.
Re: [PATCH 01/23] all: syscall wrappers: add documentation
- From: David Miller <davem at davemloft dot net>
- To: arnd at arndb dot de
- Cc: ynorov at caviumnetworks dot com, catalin dot marinas at arm dot com, linux-arm-kernel at lists dot infradead dot org, linux-kernel at vger dot kernel dot org, linux-doc at vger dot kernel dot org, linux-arch at vger dot kernel dot org, linux-s390 at vger dot kernel dot org, libc-alpha at sourceware dot org, schwidefsky at de dot ibm dot com, heiko dot carstens at de dot ibm dot com, pinskia at gmail dot com, broonie at kernel dot org, joseph at codesourcery dot com, christoph dot muellner at theobroma-systems dot com, bamvor dot zhangjian at huawei dot com, szabolcs dot nagy at arm dot com, klimov dot linux at gmail dot com, Nathan_Lynch at mentor dot com, agraf at suse dot de, Prasun dot Kapoor at caviumnetworks dot com, kilobyte at angband dot pl, geert at linux-m68k dot org, philipp dot tomsich at theobroma-systems dot com
- Date: Wed, 25 May 2016 14:28:21 -0700 (PDT)
- Subject: Re: [PATCH 01/23] all: syscall wrappers: add documentation
- Authentication-results: sourceware.org; auth=none
- References: <6293194 dot tGy03QJ9ME at wuerfel> <20160525 dot 135039 dot 244098606649448826 dot davem at davemloft dot net> <6407614 dot fdv5XFSBue at wuerfel>
From: Arnd Bergmann <email@example.com>
Date: Wed, 25 May 2016 23:01:06 +0200
> On Wednesday, May 25, 2016 1:50:39 PM CEST David Miller wrote:
>> From: Arnd Bergmann <firstname.lastname@example.org>
>> Date: Wed, 25 May 2016 22:47:33 +0200
>> > If we use the normal calling conventions, we could remove these overrides
>> > along with the respective special-case handling in glibc. None of them
>> > look particularly performance-sensitive, but I could be wrong there.
>> You could set the lowest bit in the system call entry pointer to indicate
>> the upper-half clears should be elided.
> Right, but that would introduce an extra conditional branch in the syscall
> hotpath, and likely eliminate the gains from passing the loff_t arguments
> in a single register instead of a pair.
Ok, then, how much are you really gaining from avoiding a 'shift' and
an 'or' to build the full 64-bit value? 3 cycles? Maybe 4?
And the executing the wrappers, those have a non-trivial cost too.
Cost wise, this seems like it all cancels out in the end, but what
do I know?