Skip to content

Commit

Permalink
Merge pull request #1389 from sgthammer/feature/fix-arm-modelname
Browse files Browse the repository at this point in the history
fill modelName for all cores in arm64 devices
  • Loading branch information
shirou authored Dec 19, 2022
2 parents 39f3b34 + 8325639 commit 835767a
Showing 1 changed file with 11 additions and 10 deletions.
21 changes: 11 additions & 10 deletions cpu/cpu_linux.go
Original file line number Diff line number Diff line change
Expand Up @@ -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") ||
Expand Down Expand Up @@ -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)
Expand Down

0 comments on commit 835767a

Please sign in to comment.