diff --git a/RELEASE_NOTES b/RELEASE_NOTES index 1eb70b2..13afc22 100644 --- a/RELEASE_NOTES +++ b/RELEASE_NOTES @@ -6,6 +6,13 @@ Fully Supported Platforms - Operating Systems: Ubuntu 18.04, 20.04, 22.04, 24.04, CentOS 7, Amazon Linux 2, Debian 11, RHEL 9, Rocky Linux 8 Note: svr-info may work on other micro-architectures and Linux distributions, but has not been thoroughly tested +2.12.0 +Features Added/Changed +- Gaudi devices enumerated +- GNR-D vRAN accelerators enumerated +- Minor modification to Excel 'brief' report's System Summary field +- Show ELC thresholds for Compute Die(s) + 2.11.1 Bugs Fixed - Fix frequency benchmark on GNR diff --git a/cmd/orchestrator/resources/collector_reports.yaml.tmpl b/cmd/orchestrator/resources/collector_reports.yaml.tmpl index 122f09c..ad40dbb 100644 --- a/cmd/orchestrator/resources/collector_reports.yaml.tmpl +++ b/cmd/orchestrator/resources/collector_reports.yaml.tmpl @@ -290,11 +290,7 @@ commands: # Print metrics echo -n "$socket_id,$die,$die_type,$min_ratio,$max_ratio,$eff_latency_ctrl_ratio," - if [ $die_type == "IO" ] ; then - echo "$eff_latency_ctrl_low_threshold,$eff_latency_ctrl_high_threshold,$eff_latency_ctrl_high_threshold_enable" - else - echo ",," - fi + echo "$eff_latency_ctrl_low_threshold,$eff_latency_ctrl_high_threshold,$eff_latency_ctrl_high_threshold_enable" } # Print CSV header @@ -383,8 +379,20 @@ commands: done superuser: true parallel: true + - label: gaudi info + command: hl-smi -Q module_id,serial,bus_id,driver_version -f csv + superuser: true + parallel: true + - label: gaudi firmware + command: hl-smi --fw-version + superuser: true + parallel: true + - label: gaudi numa + command: hl-smi topo -N + superuser: true + parallel: true - label: lspci bits - command: lspci -s $(lspci | grep 325b | awk 'NR==1{{print $1}}') -xxx | awk '$1 ~ /^90/{{print $9 $8 $7 $6; exit}}' + command: lspci -s $(lspci | grep 325b | awk 'NR==1{print $1}') -xxx | awk '$1 ~ /^90/{print $9 $8 $7 $6; exit}' superuser: true parallel: true - label: lspci devices diff --git a/cmd/reporter/report.go b/cmd/reporter/report.go index e6ebdeb..b4f3768 100644 --- a/cmd/reporter/report.go +++ b/cmd/reporter/report.go @@ -65,6 +65,7 @@ func NewConfigurationReport(sources []*Source, CPUdb cpudb.CPUDB) (report *Repor newFilesystemTable(sources, Storage), newGPUTable(sources, GPU), + newGaudiTable(sources, GPU), newCXLDeviceTable(sources, CXL), @@ -112,7 +113,7 @@ func NewBriefReport(sources []*Source, fullReport *Report, CPUdb cpudb.CPUDB) (r fullReport.findTable("Power"), tableEfficiencyLatencyControlSummary, newVulnerabilitySummaryTable(fullReport.findTable("Vulnerability"), Security), - newMarketingClaimTable(fullReport, tableNicSummary, tableDiskSummary, tableAcceleratorSummary, NoCategory), + newMarketingClaimTable(fullReport, tableNicSummary, tableDiskSummary, NoCategory), }..., ) // TODO: remove check when code is stable diff --git a/cmd/reporter/report_tables.go b/cmd/reporter/report_tables.go index 32f9231..4fe6fac 100644 --- a/cmd/reporter/report_tables.go +++ b/cmd/reporter/report_tables.go @@ -34,15 +34,15 @@ import ( * nicSummaryTable() - has info derived from the full table, but is presented in summary format */ -func newMarketingClaimTable(fullReport *Report, tableNicSummary *Table, tableDiskSummary *Table, tableAcceleratorSummary *Table, category TableCategory) (table *Table) { +func newMarketingClaimTable(fullReport *Report, tableNicSummary *Table, tableDiskSummary *Table, category TableCategory) (table *Table) { table = &Table{ Name: "Marketing Claim", Category: category, AllHostValues: []HostValues{}, } - // BASELINE: 1-node, 2x Intel® Xeon® , xx cores, 100W TDP, HT On/Off?, Turbo On/Off?, NUMA xxx, Integrated Accelerators Available [used]: xxx, Total Memory xxx GB (xx slots/ xx GB/ xxxx MHz [run @ xxxx MHz] ), , , , . Software: WORKLOAD+VERSION, COMPILER, LIBRARIES, OTHER_SW. Test by Intel as of . - template := "1-node, %sx %s, %s cores, %s TDP, HT %s, Turbo %s, NUMA %s, Integrated Accelerators Available [used]: %s, Total Memory %s, BIOS %s, microcode %s, %s, %s, %s, %s. Software: WORKLOAD+VERSION, COMPILER, LIBRARIES, OTHER_SW. Test by Intel as of %s." - var date, socketCount, cpuModel, coreCount, tdp, htOnOff, turboOnOff, numaNodes, installedMem, biosVersion, uCodeVersion, nics, disks, operatingSystem, kernelVersion string + // BASELINE: 1-node, 2x Intel® Xeon® , xx cores, 100W TDP, HT On/Off?, Turbo On/Off?, Total Memory xxx GB (xx slots/ xx GB/ xxxx MHz [run @ xxxx MHz] ), , , , . Test by Intel as of . + template := "1-node, %sx %s, %s cores, %s TDP, HT %s, Turbo %s, Total Memory %s, BIOS %s, microcode %s, %s, %s, %s, %s. Test by Intel as of %s." + var date, socketCount, cpuModel, coreCount, tdp, htOnOff, turboOnOff, installedMem, biosVersion, uCodeVersion, nics, disks, operatingSystem, kernelVersion string for sourceIdx, source := range fullReport.Sources { var hostValues = HostValues{ @@ -78,8 +78,6 @@ func newMarketingClaimTable(fullReport *Report, tableNicSummary *Table, tableDis } else { turboOnOff = "?" } - numaNodes, _ = fullReport.findTable("CPU").getValue(sourceIdx, "NUMA Nodes") - accelerators, _ := tableAcceleratorSummary.getValue(sourceIdx, "Accelerators Available [used]") installedMem, _ = fullReport.findTable("Memory").getValue(sourceIdx, "Installed Memory") biosVersion, _ = fullReport.findTable("BIOS").getValue(sourceIdx, "Version") uCodeVersion, _ = fullReport.findTable("Operating System").getValue(sourceIdx, "Microcode") @@ -87,7 +85,7 @@ func newMarketingClaimTable(fullReport *Report, tableNicSummary *Table, tableDis disks, _ = tableDiskSummary.getValue(sourceIdx, "Disk") operatingSystem, _ = fullReport.findTable("Operating System").getValue(sourceIdx, "OS") kernelVersion, _ = fullReport.findTable("Operating System").getValue(sourceIdx, "Kernel") - claim := fmt.Sprintf(template, socketCount, cpuModel, coreCount, tdp, htOnOff, turboOnOff, numaNodes, accelerators, installedMem, biosVersion, uCodeVersion, nics, disks, operatingSystem, kernelVersion, date) + claim := fmt.Sprintf(template, socketCount, cpuModel, coreCount, tdp, htOnOff, turboOnOff, installedMem, biosVersion, uCodeVersion, nics, disks, operatingSystem, kernelVersion, date) hostValues.Values = append(hostValues.Values, []string{claim}) table.AllHostValues = append(table.AllHostValues, hostValues) } @@ -1131,6 +1129,133 @@ func newGPUTable(sources []*Source, category TableCategory) (table *Table) { return } +type Gaudi struct { + ModuleID string + SerialNumber string + BusID string + DriverVersion string + EROM string + CPLD string + SPI string + NUMA string +} + +func newGaudiTable(sources []*Source, category TableCategory) (table *Table) { + table = &Table{ + Name: "Gaudi", + Category: category, + AllHostValues: []HostValues{}, + } + for _, source := range sources { + gaudis := []Gaudi{} + for i, line := range source.getCommandOutputLines("gaudi info") { + if line == "" || i == 0 { // skip blank lines and header + continue + } + fields := strings.Split(line, ", ") + if len(fields) != 4 { + log.Printf("unexpected number of fields in gaudi info output") + continue + } + gaudis = append(gaudis, Gaudi{ModuleID: fields[0], SerialNumber: fields[1], BusID: fields[2], DriverVersion: fields[3]}) + } + // sort the gaudis by module ID + sort.Slice(gaudis, func(i, j int) bool { + return gaudis[i].ModuleID < gaudis[j].ModuleID + }) + // get NUMA affinity + numaAffinities := source.valsArrayFromRegexSubmatch("gaudi numa", `^(\d+)\s+(\d+)$`) + if len(numaAffinities) != len(gaudis) { + log.Printf("number of gaudis in gaudi info and numa output do not match") + return nil + } + for i, numaAffinity := range numaAffinities { + gaudis[i].NUMA = numaAffinity[1] + } + // get firmware versions + reDevice := regexp.MustCompile(`^\[(\d+)] AIP \(accel\d+\) (.*)$`) + reErom := regexp.MustCompile(`^erom$`) + reCpld := regexp.MustCompile(`^cpld$`) + rePreboot := regexp.MustCompile(`^preboot$`) + reComponent := regexp.MustCompile(`^component\s+:\s+hl-gaudi\d-(.*)-sec-\d+`) + reCpldComponent := regexp.MustCompile(`^component\s+:\s+(0x[0-9a-fA-F]+\.[0-9a-fA-F]+)$`) + deviceIdx := -1 + state := -1 + for _, line := range source.getCommandOutputLines("gaudi firmware") { + if line == "" { + continue + } + match := reDevice.FindStringSubmatch(line) + if match != nil { + var err error + deviceIdx, err = strconv.Atoi(match[1]) + if err != nil { + log.Printf("failed to parse device index") + return nil + } + if deviceIdx >= len(gaudis) { + log.Printf("device index out of range") + return nil + } + continue + } + if deviceIdx == -1 { + continue + } + if reErom.FindString(line) != "" { + state = 0 + continue + } + if reCpld.FindString(line) != "" { + state = 1 + continue + } + if rePreboot.FindString(line) != "" { + state = 2 + continue + } + if state != -1 { + switch state { + case 0: + match := reComponent.FindStringSubmatch(line) + if match != nil { + gaudis[deviceIdx].EROM = match[1] + } + case 1: + match := reCpldComponent.FindStringSubmatch(line) + if match != nil { + gaudis[deviceIdx].CPLD = match[1] + } + case 2: + match := reComponent.FindStringSubmatch(line) + if match != nil { + gaudis[deviceIdx].SPI = match[1] + } + } + state = -1 + } + } + var hostValues = HostValues{ + Name: source.getHostname(), + ValueNames: []string{ + "Module ID", + "Serial Number", + "Bus ID", + "Driver Version", + "EROM", + "CPLD", + "SPI", + "NUMA Node", + }, + } + for _, gaudi := range gaudis { + hostValues.Values = append(hostValues.Values, []string{gaudi.ModuleID, gaudi.SerialNumber, gaudi.BusID, gaudi.DriverVersion, gaudi.EROM, gaudi.CPLD, gaudi.SPI, gaudi.NUMA}) + } + table.AllHostValues = append(table.AllHostValues, hostValues) + } + return +} + func newNICTable(sources []*Source, category TableCategory) (table *Table) { table = &Table{ Name: "NIC", @@ -1140,7 +1265,7 @@ func newNICTable(sources []*Source, category TableCategory) (table *Table) { idxNicName := 0 idxNicModel := 1 for _, source := range sources { - nicsInfo := source.valsArrayFromRegexSubmatch("lshw", `^pci.*? (\S+)\s+network\s+(\S.*?)\s+\[\w+:\w+]$`) + nicsInfo := source.valsArrayFromRegexSubmatch("lshw", `^\S+\s+(\S+)\s+network\s+([^\[]+?)(?:\s+\[.*\])?$`) nicsInfo = append(nicsInfo, source.valsArrayFromRegexSubmatch("lshw", `^usb.*? (\S+)\s+network\s+(\S.*?)$`)...) var nics [][]string for _, nic := range nicsInfo { diff --git a/cmd/reporter/resources/accelerators.yaml b/cmd/reporter/resources/accelerators.yaml index 8969c26..555ad6b 100644 --- a/cmd/reporter/resources/accelerators.yaml +++ b/cmd/reporter/resources/accelerators.yaml @@ -32,3 +32,9 @@ devid: 37C8 full_name: Intel Quick Assist Technology description: accelerates data encryption and compression for applications from networking to enterprise, cloud to storage, and content delivery to database + +- name: vRAN Boost + mfgid: 8086 + devid: 57C2 + full_name: Intel vRAN Boost Accelerator + description: accelerates vRAN workloads \ No newline at end of file diff --git a/go.mod b/go.mod index 0cdaa0b..c49a669 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,8 @@ module github.com/intel/svr-info -go 1.22 +go 1.22.0 + +toolchain go1.23.0 replace github.com/intel/svr-info/internal/core => ./internal/core @@ -21,29 +23,29 @@ require ( github.com/deckarep/golang-set/v2 v2.6.0 github.com/google/go-cmp v0.6.0 github.com/hyperjumptech/grule-rule-engine v1.15.0 - github.com/intel/svr-info/internal/commandfile v0.0.0-00010101000000-000000000000 - github.com/intel/svr-info/internal/core v0.0.0-00010101000000-000000000000 - github.com/intel/svr-info/internal/cpudb v0.0.0-20240202173944-01aa39f167b4 - github.com/intel/svr-info/internal/msr v0.0.0-00010101000000-000000000000 - github.com/intel/svr-info/internal/progress v0.0.0-00010101000000-000000000000 - github.com/intel/svr-info/internal/target v0.0.0-00010101000000-000000000000 - github.com/intel/svr-info/internal/util v0.0.0-00010101000000-000000000000 + github.com/intel/svr-info/internal/commandfile v0.0.0-20240826225705-4df592082b12 + github.com/intel/svr-info/internal/core v0.0.0-20240826225705-4df592082b12 + github.com/intel/svr-info/internal/cpudb v0.0.0-20240826225705-4df592082b12 + github.com/intel/svr-info/internal/msr v0.0.0-20240826225705-4df592082b12 + github.com/intel/svr-info/internal/progress v0.0.0-20240826225705-4df592082b12 + github.com/intel/svr-info/internal/target v0.0.0-20240826225705-4df592082b12 + github.com/intel/svr-info/internal/util v0.0.0-20240826225705-4df592082b12 github.com/xuri/excelize/v2 v2.8.1 - golang.org/x/exp v0.0.0-20240409090435-93d18d7e34b8 - golang.org/x/term v0.23.0 - golang.org/x/text v0.17.0 + golang.org/x/exp v0.0.0-20241004190924-225e2abe05e6 + golang.org/x/term v0.25.0 + golang.org/x/text v0.19.0 gopkg.in/yaml.v2 v2.4.0 ) require ( - dario.cat/mergo v1.0.0 // indirect - github.com/Microsoft/go-winio v0.6.1 // indirect + dario.cat/mergo v1.0.1 // indirect + github.com/Microsoft/go-winio v0.6.2 // indirect github.com/ProtonMail/go-crypto v1.0.0 // indirect github.com/antlr/antlr4/runtime/Go/antlr v1.4.10 // indirect github.com/bmatcuk/doublestar v1.3.4 // indirect - github.com/cloudflare/circl v1.3.7 // indirect + github.com/cloudflare/circl v1.4.0 // indirect github.com/creasty/defaults v1.8.0 // indirect - github.com/cyphar/filepath-securejoin v0.2.4 // indirect + github.com/cyphar/filepath-securejoin v0.3.3 // indirect github.com/emirpasic/gods v1.18.1 // indirect github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect github.com/go-git/go-billy/v5 v5.5.0 // indirect @@ -55,20 +57,17 @@ require ( github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 // indirect github.com/pjbgf/sha1cd v0.3.0 // indirect github.com/richardlehane/mscfb v1.0.4 // indirect - github.com/richardlehane/msoleps v1.0.3 // indirect + github.com/richardlehane/msoleps v1.0.4 // indirect github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3 // indirect github.com/sirupsen/logrus v1.9.3 // indirect - github.com/skeema/knownhosts v1.2.2 // indirect + github.com/skeema/knownhosts v1.3.0 // indirect github.com/xanzy/ssh-agent v0.3.3 // indirect github.com/xuri/efp v0.0.0-20240408161823-9ad904a10d6d // indirect github.com/xuri/nfp v0.0.0-20240318013403-ab9948c2c4a7 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect - golang.org/x/crypto v0.23.0 // indirect - golang.org/x/mod v0.17.0 // indirect - golang.org/x/net v0.25.0 // indirect - golang.org/x/sync v0.8.0 // indirect - golang.org/x/sys v0.23.0 // indirect - golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d // indirect + golang.org/x/crypto v0.28.0 // indirect + golang.org/x/net v0.30.0 // indirect + golang.org/x/sys v0.26.0 // indirect gopkg.in/warnings.v0 v0.1.2 // indirect ) diff --git a/go.sum b/go.sum index c340852..f4fdc6f 100644 --- a/go.sum +++ b/go.sum @@ -1,10 +1,10 @@ -dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk= -dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= +dario.cat/mergo v1.0.1 h1:Ra4+bf83h2ztPIQYNP99R6m+Y7KfnARDfID+a+vLl4s= +dario.cat/mergo v1.0.1/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= github.com/Knetic/govaluate v3.0.0+incompatible h1:7o6+MAPhYTCF0+fdvoz1xDedhRb4f6s9Tn1Tt7/WTEg= github.com/Knetic/govaluate v3.0.0+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0= github.com/Microsoft/go-winio v0.5.2/go.mod h1:WpS1mjBmmwHBEWmogvA2mj8546UReBk4v8QkMxJ6pZY= -github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= -github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= +github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= +github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= github.com/ProtonMail/go-crypto v1.0.0 h1:LRuvITjQWX+WIfr930YHG2HNfjR1uOfyf5vE0kC2U78= github.com/ProtonMail/go-crypto v1.0.0/go.mod h1:EjAoLdwvbIOoOQr3ihjnSoLZRtE8azugULFRteWMNc0= github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be h1:9AeTilPcZAjCFIImctFaOjnTIavg87rW78vTPkQqLI8= @@ -17,12 +17,12 @@ github.com/bmatcuk/doublestar v1.3.4 h1:gPypJ5xD31uhX6Tf54sDPUOBXTqKH4c9aPY66CyQ github.com/bmatcuk/doublestar v1.3.4/go.mod h1:wiQtGV+rzVYxB7WIlirSN++5HPtPlXEo9MEoZQC/PmE= github.com/bwesterb/go-ristretto v1.2.3/go.mod h1:fUIoIZaG73pV5biE2Blr2xEzDoMj7NFEuV9ekS419A0= github.com/cloudflare/circl v1.3.3/go.mod h1:5XYMA4rFBvNIrhs50XuiBJ15vF2pZn4nnUKZrLbUZFA= -github.com/cloudflare/circl v1.3.7 h1:qlCDlTPz2n9fu58M0Nh1J/JzcFpfgkFHHX3O35r5vcU= -github.com/cloudflare/circl v1.3.7/go.mod h1:sRTcRWXGLrKw6yIGJ+l7amYJFfAXbZG0kBSc8r4zxgA= +github.com/cloudflare/circl v1.4.0 h1:BV7h5MgrktNzytKmWjpOtdYrf0lkkbF8YMlBGPhJQrY= +github.com/cloudflare/circl v1.4.0/go.mod h1:PDRU+oXvdD7KCtgKxW95M5Z8BpSCJXQORiZFnBQS5QU= github.com/creasty/defaults v1.8.0 h1:z27FJxCAa0JKt3utc0sCImAEb+spPucmKoOdLHvHYKk= github.com/creasty/defaults v1.8.0/go.mod h1:iGzKe6pbEHnpMPtfDXZEr0NVxWnPTjb1bbDy08fPzYM= -github.com/cyphar/filepath-securejoin v0.2.4 h1:Ugdm7cg7i6ZK6x3xDF1oEu1nfkyfH53EtKeQYTC3kyg= -github.com/cyphar/filepath-securejoin v0.2.4/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxGGx79pTxQpKOJNYHHl4= +github.com/cyphar/filepath-securejoin v0.3.3 h1:lofZkCEVFIBe0KcdQOzFs8Soy9oaHOWl4gGtPI+gCFc= +github.com/cyphar/filepath-securejoin v0.3.3/go.mod h1:8s/MCNJREmFK0H02MF6Ihv1nakJe4L/w3WZLHNkvlYM= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -74,8 +74,8 @@ github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZN github.com/richardlehane/mscfb v1.0.4 h1:WULscsljNPConisD5hR0+OyZjwK46Pfyr6mPu5ZawpM= github.com/richardlehane/mscfb v1.0.4/go.mod h1:YzVpcZg9czvAuhk9T+a3avCpcFPMUWm7gK3DypaEsUk= github.com/richardlehane/msoleps v1.0.1/go.mod h1:BWev5JBpU9Ko2WAgmZEuiz4/u3ZYTKbjLycmwiWUfWg= -github.com/richardlehane/msoleps v1.0.3 h1:aznSZzrwYRl3rLKRT3gUk9am7T/mLNSnJINvN0AQoVM= -github.com/richardlehane/msoleps v1.0.3/go.mod h1:BWev5JBpU9Ko2WAgmZEuiz4/u3ZYTKbjLycmwiWUfWg= +github.com/richardlehane/msoleps v1.0.4 h1:WuESlvhX3gH2IHcd8UqyCuFY5yiq/GR/yqaSM/9/g00= +github.com/richardlehane/msoleps v1.0.4/go.mod h1:BWev5JBpU9Ko2WAgmZEuiz4/u3ZYTKbjLycmwiWUfWg= github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3 h1:n661drycOFuPLCN3Uc8sB6B/s6Z4t2xvBgU1htSHuq8= @@ -83,8 +83,8 @@ github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3/go.mod h1:A0bzQcvG github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= -github.com/skeema/knownhosts v1.2.2 h1:Iug2P4fLmDw9f41PB6thxUkNUkJzB5i+1/exaj40L3A= -github.com/skeema/knownhosts v1.2.2/go.mod h1:xYbVRSPxqBZFrdmDyMmsOs+uX1UZC3nTN3ThzgDxUwo= +github.com/skeema/knownhosts v1.3.0 h1:AM+y0rI04VksttfwjkSTNQorvGqmwATnvnAHpSgc0LY= +github.com/skeema/knownhosts v1.3.0/go.mod h1:sPINvnADmT/qYH1kfv+ePMmOBTH6Tbl7b5LvTDjFK7M= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= @@ -111,16 +111,14 @@ golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5y golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.3.1-0.20221117191849-2c476679df9a/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU= -golang.org/x/crypto v0.23.0 h1:dIJU/v2J8Mdglj/8rJ6UUOM3Zc9zLZxVZwwxMooUSAI= -golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8= -golang.org/x/exp v0.0.0-20240409090435-93d18d7e34b8 h1:ESSUROHIBHg7USnszlcdmjBEwdMj9VUvU+OPk4yl2mc= -golang.org/x/exp v0.0.0-20240409090435-93d18d7e34b8/go.mod h1:/lliqkxwWAhPjf5oSOIJup2XcqJaw8RGS6k3TGEc7GI= +golang.org/x/crypto v0.28.0 h1:GBDwsMXVQi34v5CCYUm2jkJvu4cbtru2U4TN2PSyQnw= +golang.org/x/crypto v0.28.0/go.mod h1:rmgy+3RHxRZMyY0jjAJShp2zgEdOqj2AO7U0pYmeQ7U= +golang.org/x/exp v0.0.0-20241004190924-225e2abe05e6 h1:1wqE9dj9NpSm04INVsJhhEUzhuDVjbcyKH91sVyPATw= +golang.org/x/exp v0.0.0-20241004190924-225e2abe05e6/go.mod h1:NQtJDoLvd6faHhE7m4T/1IY708gDefGGjR/iUW8yQQ8= golang.org/x/image v0.14.0 h1:tNgSxAFe3jC4uYqvZdTr84SZoM1KfwdC9SKIFrLjFn4= golang.org/x/image v0.14.0/go.mod h1:HUYqC05R2ZcZ3ejNQsIHQDQiwWM4JBqmm6MKANTp4LE= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/mod v0.17.0 h1:zY54UmvipHiNd+pm+m0x9KhZ9hl1/7QNMyxXbc6ICqA= -golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= @@ -128,13 +126,11 @@ golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= -golang.org/x/net v0.25.0 h1:d/OCCoBEUq33pjydKrGQhw7IlUPI2Oylr+8qLx49kac= -golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM= +golang.org/x/net v0.30.0 h1:AcW1SDZMkb8IpzCdQUaIq2sP4sZ4zw+55h6ynffypl4= +golang.org/x/net v0.30.0/go.mod h1:2wGyMJ5iFasEhkwi13ChkO/t1ECNC4X4eBKkVFyYFlU= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.8.0 h1:3NFvSEYkUoMifnESzZl15y791HH1qU2xm6eCJU5ZPXQ= -golang.org/x/sync v0.8.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -148,15 +144,15 @@ golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.23.0 h1:YfKFowiIMvtgl1UERQoTPPToxltDeZfbj4H7dVUCwmM= -golang.org/x/sys v0.23.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.26.0 h1:KHjCJyddX0LoSTb3J+vWpupP9p0oznkqVk/IfjymZbo= +golang.org/x/sys v0.26.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= -golang.org/x/term v0.23.0 h1:F6D4vR+EHoL9/sWAWgAR1H2DcHr4PareCbAaCo1RpuU= -golang.org/x/term v0.23.0/go.mod h1:DgV24QBUrK6jhZXl+20l6UWznPlwAHm1Q1mGHtydmSk= +golang.org/x/term v0.25.0 h1:WtHI/ltw4NvSUig5KARz9h521QvRC8RmF/cuYqifU24= +golang.org/x/term v0.25.0/go.mod h1:RPyXicDX+6vLxogjjRxjgD2TKtmAO6NZBsBRfrOLu7M= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= @@ -164,14 +160,12 @@ golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= -golang.org/x/text v0.17.0 h1:XtiM5bkSOt+ewxlOE/aE/AKEHibwj/6gvWMl9Rsh0Qc= -golang.org/x/text v0.17.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= +golang.org/x/text v0.19.0 h1:kTxAhCbGbxhK0IwgSKiMO5awPoDQ0RpfiVYBfK860YM= +golang.org/x/text v0.19.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= -golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d h1:vU5i/LfpvrRCpgM/VPfJLg5KjxD3E+hfT1SH+d9zLwg= -golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= diff --git a/internal/cpudb/resources/cpus.yaml b/internal/cpudb/resources/cpus.yaml index 3cb37e5..a484cb0 100644 --- a/internal/cpudb/resources/cpus.yaml +++ b/internal/cpudb/resources/cpus.yaml @@ -209,6 +209,14 @@ channels: 12 threads: 2 +# Granite Rapids - D +- architecture: GNR_D + family: 6 + model: 174 + stepping: + channels: + threads: 2 + ########## # AMD CPUs ########## diff --git a/internal/progress/go.mod b/internal/progress/go.mod index 1328ec4..b7003ed 100644 --- a/internal/progress/go.mod +++ b/internal/progress/go.mod @@ -2,6 +2,6 @@ module github.com/svr-info/internal/progress go 1.22 -require golang.org/x/term v0.23.0 +require golang.org/x/term v0.25.0 -require golang.org/x/sys v0.23.0 // indirect +require golang.org/x/sys v0.26.0 // indirect diff --git a/internal/progress/go.sum b/internal/progress/go.sum index 704bf82..24bee3f 100644 --- a/internal/progress/go.sum +++ b/internal/progress/go.sum @@ -1,4 +1,4 @@ -golang.org/x/sys v0.23.0 h1:YfKFowiIMvtgl1UERQoTPPToxltDeZfbj4H7dVUCwmM= -golang.org/x/sys v0.23.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/term v0.23.0 h1:F6D4vR+EHoL9/sWAWgAR1H2DcHr4PareCbAaCo1RpuU= -golang.org/x/term v0.23.0/go.mod h1:DgV24QBUrK6jhZXl+20l6UWznPlwAHm1Q1mGHtydmSk= +golang.org/x/sys v0.26.0 h1:KHjCJyddX0LoSTb3J+vWpupP9p0oznkqVk/IfjymZbo= +golang.org/x/sys v0.26.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/term v0.25.0 h1:WtHI/ltw4NvSUig5KARz9h521QvRC8RmF/cuYqifU24= +golang.org/x/term v0.25.0/go.mod h1:RPyXicDX+6vLxogjjRxjgD2TKtmAO6NZBsBRfrOLu7M= diff --git a/version.txt b/version.txt index c200bec..3ca2c9b 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -2.11.1 \ No newline at end of file +2.12.0 \ No newline at end of file