forked from forgejo/forgejo
Update Vendor (#16325)
* Add Dependencie Update Script * update gitea.com/lunny/levelqueue * update github.com/PuerkitoBio/goquery * update github.com/alecthomas/chroma * update github.com/blevesearch/bleve/v2 * update github.com/caddyserver/certmagic * update github.com/go-enry/go-enry/v2 * update github.com/go-redis/redis/v8 * update github.com/hashicorp/golang-lru * update github.com/klauspost/compress * update github.com/markbates/goth * update github.com/mholt/archiver/v3 * update github.com/microcosm-cc/bluemonday * update github.com/minio/minio-go/v7 * update github.com/olivere/elastic/v7 * update github.com/xanzy/go-gitlab * update github.com/yuin/goldmark
This commit is contained in:
parent
65ae46bc20
commit
fae07cbc8f
319 changed files with 33568 additions and 21050 deletions
68
vendor/github.com/klauspost/cpuid/v2/cpuid.go
generated
vendored
68
vendor/github.com/klauspost/cpuid/v2/cpuid.go
generated
vendored
|
@ -96,7 +96,9 @@ const (
|
|||
BMI2 // Bit Manipulation Instruction Set 2
|
||||
CLDEMOTE // Cache Line Demote
|
||||
CLMUL // Carry-less Multiplication
|
||||
CLZERO // CLZERO instruction supported
|
||||
CMOV // i686 CMOV
|
||||
CPBOOST // Core Performance Boost
|
||||
CX16 // CMPXCHG16B Instruction
|
||||
ENQCMD // Enqueue Command
|
||||
ERMS // Enhanced REP MOVSB/STOSB
|
||||
|
@ -106,6 +108,7 @@ const (
|
|||
GFNI // Galois Field New Instructions
|
||||
HLE // Hardware Lock Elision
|
||||
HTT // Hyperthreading (enabled)
|
||||
HWA // Hardware assert supported. Indicates support for MSRC001_10
|
||||
HYPERVISOR // This bit has been reserved by Intel & AMD for use by hypervisors
|
||||
IBPB // Indirect Branch Restricted Speculation (IBRS) and Indirect Branch Predictor Barrier (IBPB)
|
||||
IBS // Instruction Based Sampling (AMD)
|
||||
|
@ -117,18 +120,25 @@ const (
|
|||
IBSOPSAM // Instruction Based Sampling Feature (AMD)
|
||||
IBSRDWROPCNT // Instruction Based Sampling Feature (AMD)
|
||||
IBSRIPINVALIDCHK // Instruction Based Sampling Feature (AMD)
|
||||
INT_WBINVD // WBINVD/WBNOINVD are interruptible.
|
||||
INVLPGB // NVLPGB and TLBSYNC instruction supported
|
||||
LZCNT // LZCNT instruction
|
||||
MCAOVERFLOW // MCA overflow recovery support.
|
||||
MCOMMIT // MCOMMIT instruction supported
|
||||
MMX // standard MMX
|
||||
MMXEXT // SSE integer functions or AMD MMX ext
|
||||
MOVDIR64B // Move 64 Bytes as Direct Store
|
||||
MOVDIRI // Move Doubleword as Direct Store
|
||||
MPX // Intel MPX (Memory Protection Extensions)
|
||||
MSRIRC // Instruction Retired Counter MSR available
|
||||
NX // NX (No-Execute) bit
|
||||
POPCNT // POPCNT instruction
|
||||
RDPRU // RDPRU instruction supported
|
||||
RDRAND // RDRAND instruction is available
|
||||
RDSEED // RDSEED instruction is available
|
||||
RDTSCP // RDTSCP Instruction
|
||||
RTM // Restricted Transactional Memory
|
||||
RTM_ALWAYS_ABORT // Indicates that the loaded microcode is forcing RTM abort.
|
||||
SERIALIZE // Serialize Instruction Execution
|
||||
SGX // Software Guard Extensions
|
||||
SGXLC // Software Guard Extensions Launch Control
|
||||
|
@ -141,6 +151,7 @@ const (
|
|||
SSE4A // AMD Barcelona microarchitecture SSE4a instructions
|
||||
SSSE3 // Conroe SSSE3 functions
|
||||
STIBP // Single Thread Indirect Branch Predictors
|
||||
SUCCOR // Software uncorrectable error containment and recovery capability.
|
||||
TBM // AMD Trailing Bit Manipulation
|
||||
TSXLDTRK // Intel TSX Suspend Load Address Tracking
|
||||
VAES // Vector AES
|
||||
|
@ -194,7 +205,8 @@ type CPUInfo struct {
|
|||
Family int // CPU family number
|
||||
Model int // CPU model number
|
||||
CacheLine int // Cache line size in bytes. Will be 0 if undetectable.
|
||||
Hz int64 // Clock speed, if known, 0 otherwise
|
||||
Hz int64 // Clock speed, if known, 0 otherwise. Will attempt to contain base clock speed.
|
||||
BoostFreq int64 // Max clock speed, if known, 0 otherwise
|
||||
Cache struct {
|
||||
L1I int // L1 Instruction Cache (per core or shared). Will be -1 if undetected
|
||||
L1D int // L1 Data Cache (per core or shared). Will be -1 if undetected
|
||||
|
@ -363,25 +375,43 @@ func (c CPUInfo) LogicalCPU() int {
|
|||
return int(ebx >> 24)
|
||||
}
|
||||
|
||||
// hertz tries to compute the clock speed of the CPU. If leaf 15 is
|
||||
// frequencies tries to compute the clock speed of the CPU. If leaf 15 is
|
||||
// supported, use it, otherwise parse the brand string. Yes, really.
|
||||
func hertz(model string) int64 {
|
||||
func (c *CPUInfo) frequencies() {
|
||||
c.Hz, c.BoostFreq = 0, 0
|
||||
mfi := maxFunctionID()
|
||||
if mfi >= 0x15 {
|
||||
eax, ebx, ecx, _ := cpuid(0x15)
|
||||
if eax != 0 && ebx != 0 && ecx != 0 {
|
||||
return int64((int64(ecx) * int64(ebx)) / int64(eax))
|
||||
c.Hz = (int64(ecx) * int64(ebx)) / int64(eax)
|
||||
fmt.Println("frequencies(): ", ecx, ebx, eax, "->", c.Hz)
|
||||
}
|
||||
}
|
||||
if mfi >= 0x16 {
|
||||
a, b, _, _ := cpuid(0x16)
|
||||
// Base...
|
||||
if a&0xffff > 0 {
|
||||
c.Hz = int64(a&0xffff) * 1_000_000
|
||||
}
|
||||
// Boost...
|
||||
if b&0xffff > 0 {
|
||||
c.BoostFreq = int64(b&0xffff) * 1_000_000
|
||||
}
|
||||
}
|
||||
if c.Hz > 0 {
|
||||
return
|
||||
}
|
||||
|
||||
// computeHz determines the official rated speed of a CPU from its brand
|
||||
// string. This insanity is *actually the official documented way to do
|
||||
// this according to Intel*, prior to leaf 0x15 existing. The official
|
||||
// documentation only shows this working for exactly `x.xx` or `xxxx`
|
||||
// cases, e.g., `2.50GHz` or `1300MHz`; this parser will accept other
|
||||
// sizes.
|
||||
model := c.BrandName
|
||||
hz := strings.LastIndex(model, "Hz")
|
||||
if hz < 3 {
|
||||
return 0
|
||||
return
|
||||
}
|
||||
var multiplier int64
|
||||
switch model[hz-1] {
|
||||
|
@ -393,7 +423,7 @@ func hertz(model string) int64 {
|
|||
multiplier = 1000 * 1000 * 1000 * 1000
|
||||
}
|
||||
if multiplier == 0 {
|
||||
return 0
|
||||
return
|
||||
}
|
||||
freq := int64(0)
|
||||
divisor := int64(0)
|
||||
|
@ -405,21 +435,22 @@ func hertz(model string) int64 {
|
|||
decimalShift *= 10
|
||||
} else if model[i] == '.' {
|
||||
if divisor != 0 {
|
||||
return 0
|
||||
return
|
||||
}
|
||||
divisor = decimalShift
|
||||
} else {
|
||||
return 0
|
||||
return
|
||||
}
|
||||
}
|
||||
// we didn't find a space
|
||||
if i < 0 {
|
||||
return 0
|
||||
return
|
||||
}
|
||||
if divisor != 0 {
|
||||
return (freq * multiplier) / divisor
|
||||
c.Hz = (freq * multiplier) / divisor
|
||||
return
|
||||
}
|
||||
return freq * multiplier
|
||||
c.Hz = freq * multiplier
|
||||
}
|
||||
|
||||
// VM Will return true if the cpu id indicates we are in
|
||||
|
@ -911,6 +942,7 @@ func support() flagSet {
|
|||
fs.setIf(ecx&(1<<29) != 0, ENQCMD)
|
||||
fs.setIf(ecx&(1<<30) != 0, SGXLC)
|
||||
// CPUID.(EAX=7, ECX=0).EDX
|
||||
fs.setIf(edx&(1<<11) != 0, RTM_ALWAYS_ABORT)
|
||||
fs.setIf(edx&(1<<14) != 0, SERIALIZE)
|
||||
fs.setIf(edx&(1<<16) != 0, TSXLDTRK)
|
||||
fs.setIf(edx&(1<<26) != 0, IBPB)
|
||||
|
@ -980,9 +1012,23 @@ func support() flagSet {
|
|||
}
|
||||
|
||||
}
|
||||
if maxExtendedFunction() >= 0x80000007 {
|
||||
_, b, _, d := cpuid(0x80000007)
|
||||
fs.setIf((b&(1<<0)) != 0, MCAOVERFLOW)
|
||||
fs.setIf((b&(1<<1)) != 0, SUCCOR)
|
||||
fs.setIf((b&(1<<2)) != 0, HWA)
|
||||
fs.setIf((d&(1<<9)) != 0, CPBOOST)
|
||||
}
|
||||
|
||||
if maxExtendedFunction() >= 0x80000008 {
|
||||
_, b, _, _ := cpuid(0x80000008)
|
||||
fs.setIf((b&(1<<9)) != 0, WBNOINVD)
|
||||
fs.setIf((b&(1<<8)) != 0, MCOMMIT)
|
||||
fs.setIf((b&(1<<13)) != 0, INT_WBINVD)
|
||||
fs.setIf((b&(1<<4)) != 0, RDPRU)
|
||||
fs.setIf((b&(1<<3)) != 0, INVLPGB)
|
||||
fs.setIf((b&(1<<1)) != 0, MSRIRC)
|
||||
fs.setIf((b&(1<<0)) != 0, CLZERO)
|
||||
}
|
||||
|
||||
if maxExtendedFunction() >= 0x8000001b && fs.inSet(IBS) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue