mirror of
https://github.com/VictoriaMetrics/VictoriaMetrics.git
synced 2024-12-22 08:26:19 +01:00
35 lines
820 B
Go
35 lines
820 B
Go
|
// Package cpuinfo gives runtime info about the current CPU.
|
||
|
//
|
||
|
// This is a very limited module meant for use internally
|
||
|
// in this project. For more versatile solution check
|
||
|
// https://github.com/klauspost/cpuid.
|
||
|
package cpuinfo
|
||
|
|
||
|
// HasBMI1 checks whether an x86 CPU supports the BMI1 extension.
|
||
|
func HasBMI1() bool {
|
||
|
return hasBMI1
|
||
|
}
|
||
|
|
||
|
// HasBMI2 checks whether an x86 CPU supports the BMI2 extension.
|
||
|
func HasBMI2() bool {
|
||
|
return hasBMI2
|
||
|
}
|
||
|
|
||
|
// DisableBMI2 will disable BMI2, for testing purposes.
|
||
|
// Call returned function to restore previous state.
|
||
|
func DisableBMI2() func() {
|
||
|
old := hasBMI2
|
||
|
hasBMI2 = false
|
||
|
return func() {
|
||
|
hasBMI2 = old
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// HasBMI checks whether an x86 CPU supports both BMI1 and BMI2 extensions.
|
||
|
func HasBMI() bool {
|
||
|
return HasBMI1() && HasBMI2()
|
||
|
}
|
||
|
|
||
|
var hasBMI1 bool
|
||
|
var hasBMI2 bool
|