> On Sep 13, 2018, at 12:07 PM, Florian Weimer <fwei...@redhat.com> wrote:
> 
> On 09/13/2018 05:22 PM, Andy Lutomirski wrote:
>>> On Sep 13, 2018, at 1:07 AM, Florian Weimer <fwei...@redhat.com> wrote:
>>> 
>>> On 09/12/2018 07:11 PM, Andy Lutomirski wrote:
>>>>> The multiplexer interfaces need much more surgery and talking about futex,
>>>>> we'd need to sit down with quite some people and identify the things they
>>>>> actually care about before just splitting it up and keeping the existing
>>>>> overloaded trainwreck the same.
>>>>> 
>>>> There’s also the issue of how much the speedup matters. For futex, maybe a 
>>>> better interface saves 3ns, but a futex syscall is hundreds of ns. 
>>>> clock_gettime() is called at high frequency and can be ~25ns. Saving a few 
>>>> ns is a bigger deal.
>>> 
>>> My concern is that the userspace system call wrappers currently do not know 
>>> how many arguments the individual operations take and what types the 
>>> arguments have (hence the “type-polymorphic” nature I mentioned). This 
>>> could be a problem for on-stack argument passing (where you might read 
>>> values beyond the end of the stack, and glibc avoids that most of the time 
>>> by having enough cruft on the stack), and for architectures which pass 
>>> pointers and integers in different registers (like some m68k ABIs do for 
>>> the return value).
> 
>> Isn’t clock_gettime already special because of the vDSO entry point, though?
> 
> Somewhat special, yes, but not overly so, and not in the type-polymorphic 
> sense.  We can't give direct access of the vDSO implementation to 
> applications because the kernel does not know about the userspace errno 
> variable.  We do that for time on x86_64, where applications call into the 
> vDSO directly, bypassing glibc completely after binding.

If the vDSO adds special helpers for CLOCK_MONOTONIC and CLOCK_REALTIME, I 
think we can reasonably safely promise that they never fail. (seccomp can 
obviously break that promise if there’s no TSC, but I think that seccomp users 
who do that get to keep both pieces.)

Reply via email to