On Tue, Apr 27, 2021 at 9:59 AM Michael Pratt <mpr...@google.com> wrote:
>
> Oops, I should say the syscall package could do this. x/sys/unix has the 
> extra complexity of not being tied to a Go release.

It's a good idea, although I'll note that the syscall package does not
currently define ClockGettime.

I think it would be manageable to use build tags to do this in x/sys/unix.

Ian


> On Tue, Apr 27, 2021, 12:53 Michael Pratt <mpr...@google.com> wrote:
>>
>> I'm not sure if calling through the VDSO is the best solution to this 
>> specific issue, though it does sound like a case that would certainly 
>> benefit.
>>
>> Regardless, one fairly clean way we could support this would be to make 
>> x/sys/unix.ClockGettime (and Gettimeofday) call through the VDSO rather than 
>> performing the syscall. That is always a valid operation (the VDSO will make 
>> the syscall if it doesn't support the specific options passed), and I think 
>> would solve this problem without even changing the API. It seems we don't do 
>> that already for simplicity of implementation and prior lack of need.
>>
>> On Tue, Apr 27, 2021 at 12:13 PM Ian Lance Taylor <i...@golang.org> wrote:
>>>
>>> On Tue, Apr 27, 2021, 8:55 AM Manlio Perillo <manlio.peri...@gmail.com> 
>>> wrote:
>>>>
>>>> Il giorno martedì 27 aprile 2021 alle 17:51:46 UTC+2 Ian Lance Taylor ha 
>>>> scritto:
>>>>>
>>>>> On Tue, Apr 27, 2021 at 7:43 AM Manlio Perillo <manlio....@gmail.com> 
>>>>> wrote:
>>>>> >
>>>>> > Il giorno lunedì 26 aprile 2021 alle 10:24:09 UTC+2 Pure White ha 
>>>>> > scritto:
>>>>> >>
>>>>> >> So I really want to know what is the right way to do vdso call outside 
>>>>> >> runtime?
>>>>> >>
>>>>> > What about using a different function instead of time.Now, and using 
>>>>> > RawSyscall?
>>>>>
>>>>> That wouldn't be a VDSO call. VDSO calls are in general faster than
>>>>> system calls. There is more background at
>>>>> https://man7.org/linux/man-pages/man7/vdso.7.html.
>>>>>
>>>>> Ian
>>>>
>>>>
>>>> Yes, that wouldn't a VDSO call.  But since a VDSO call will require cgo , 
>>>> maybe RawSyscall will be more efficient?
>>>
>>>
>>> The meaningful comparison is to time.Now, which uses VDSO.  I suppose it is 
>>> possible that RawSyscall of clock_gettime with a coarse clock would be 
>>> faster than time.Now, but I would be surprised.
>>>
>>> Ian
>>>
>>> --
>>> You received this message because you are subscribed to the Google Groups 
>>> "golang-nuts" group.
>>> To unsubscribe from this group and stop receiving emails from it, send an 
>>> email to golang-nuts+unsubscr...@googlegroups.com.
>>> To view this discussion on the web visit 
>>> https://groups.google.com/d/msgid/golang-nuts/CAOyqgcX9mfSFq5gucrTCi0PJyVdLzA2xGXNByDeOGOyaFLo1hA%40mail.gmail.com.

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/golang-nuts/CAOyqgcX69R0dEmPjhBvJ0Z5twMqysuP6WMV6dq5WzsPeLSto3A%40mail.gmail.com.

Reply via email to