mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
runtime: fix cputicks on x86
See the following issue for context: https://github.com/golang/go/issues/9729#issuecomment-74648287 In short, RDTSC can produce skewed results without preceding LFENCE/MFENCE. Information on this matter is very scrappy in the internet. But this is what linux kernel does (see rdtsc_barrier). It also fixes the test program on my machine. Update #9729 Change-Id: I3c1ffbf129fdfdd388bd5b7911b392b319248e68 Reviewed-on: https://go-review.googlesource.com/5033 Reviewed-by: Ian Lance Taylor <iant@golang.org>
This commit is contained in:
parent
5868ce3519
commit
6e70fddec0
4 changed files with 50 additions and 12 deletions
|
|
@ -562,12 +562,16 @@ var (
|
|||
goos *int8
|
||||
ncpu int32
|
||||
iscgo bool
|
||||
cpuid_ecx uint32
|
||||
cpuid_edx uint32
|
||||
signote note
|
||||
forcegc forcegcstate
|
||||
sched schedt
|
||||
newprocs int32
|
||||
|
||||
// Information about what cpu features are available.
|
||||
// Set on startup in asm_{x86,amd64}.s.
|
||||
cpuid_ecx uint32
|
||||
cpuid_edx uint32
|
||||
lfenceBeforeRdtsc bool
|
||||
)
|
||||
|
||||
/*
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue