• Meng Zhuo's avatar
    runtime: use vDSO for clock_gettime on linux/arm64 · ea59ebd3
    Meng Zhuo authored
    Use the __vdso_clock_gettime fast path via the vDSO on linux/arm64 to
    speed up nanotime and walltime. This results in the following
    performance improvement for time.Now on Cavium ThunderX:
    
    name     old time/op  new time/op  delta
    TimeNow   442ns ± 0%   163ns ± 0%  -63.16%  (p=0.000 n=10+10)
    
    And benchmarks on VDSO
    
    BenchmarkClockVDSOAndFallbackPaths/vDSO         10000000 166 ns/op
    BenchmarkClockVDSOAndFallbackPaths/Fallback     3000000 456 ns/op
    
    Change-Id: I326118c6dff865eaa0569fc45d1fc1ff95cb74f6
    Reviewed-on: https://go-review.googlesource.com/99855
    Run-TryBot: Tobias Klauser <tobias.klauser@gmail.com>
    Run-TryBot: Ian Lance Taylor <iant@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: 's avatarIan Lance Taylor <iant@golang.org>
    ea59ebd3
os_linux_novdso.go 264 Bytes