Re: [PATCH 01/23] all: syscall wrappers: add documentation

From: David Miller
Date: Wed May 25 2016 - 17:28:30 EST


From: Arnd Bergmann <arnd@xxxxxxxx>
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 <arnd@xxxxxxxx>
>> 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?