mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
runtime: use vDSO clock_gettime on linux/riscv64
Speed up nanotime1 and walltime on riscv64 with vDSO, just like the other vDSO-enabled targets. name old time/op new time/op delta Now 1.53µs ± 1% 1.05µs ± 3% -31.74% (p=0.000 n=10+10) NowUnixNano 1.54µs ± 0% 1.05µs ± 2% -31.91% (p=0.000 n=9+10) NowUnixMilli 1.56µs ± 1% 1.06µs ± 1% -31.73% (p=0.000 n=10+10) NowUnixMicro 1.56µs ± 1% 1.05µs ± 1% -32.80% (p=0.000 n=9+10) Change-Id: I69b3fe3cc57685a826c53b366c0992e8048399bb Reviewed-on: https://go-review.googlesource.com/c/go/+/328509 Trust: Meng Zhuo <mzh@golangcn.org> Run-TryBot: Meng Zhuo <mzh@golangcn.org> TryBot-Result: Go Bot <gobot@golang.org> Reviewed-by: Cherry Mui <cherryyz@google.com>
This commit is contained in:
parent
df4c625d88
commit
1bd35fab05
7 changed files with 159 additions and 15 deletions
|
|
@ -383,7 +383,7 @@ func preemptM(mp *m) {
|
|||
//go:nosplit
|
||||
func sigFetchG(c *sigctxt) *g {
|
||||
switch GOARCH {
|
||||
case "arm", "arm64", "ppc64", "ppc64le":
|
||||
case "arm", "arm64", "ppc64", "ppc64le", "riscv64":
|
||||
if !iscgo && inVDSOPage(c.sigpc()) {
|
||||
// When using cgo, we save the g on TLS and load it from there
|
||||
// in sigtramp. Just use that.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue