fill modelName for all cores in arm64 devices

This commit is contained in:
sgthammer 2022-12-06 14:56:51 +03:00
parent 3b918ebd29
commit 83256398be
1 changed files with 11 additions and 10 deletions

View File

@ -242,6 +242,17 @@ func InfoWithContext(ctx context.Context) ([]InfoStat, error) {
c.Family = value
case "model", "CPU part":
c.Model = value
// if CPU is arm based, model name is found via model number. refer to: arch/arm64/kernel/cpuinfo.c
if c.VendorID == "ARM" {
if v, err := strconv.ParseUint(c.Model, 0, 16); err == nil {
modelName, exist := armModelToModelName[v]
if exist {
c.ModelName = modelName
} else {
c.ModelName = "Undefined"
}
}
}
case "model name", "cpu":
c.ModelName = value
if strings.Contains(value, "POWER8") ||
@ -285,16 +296,6 @@ func InfoWithContext(ctx context.Context) ([]InfoStat, error) {
c.Microcode = value
}
}
if c.VendorID == "ARM" && c.ModelName == "" {
if v, err := strconv.ParseUint(c.Model, 0, 16); err == nil {
modelName, exist := armModelToModelName[v]
if exist {
c.ModelName = modelName
} else {
c.ModelName = "Undefined"
}
}
}
if c.CPU >= 0 {
finishCPUInfo(&c)
ret = append(ret, c)