Handle the case when the `cpufreq` sysfs does not exist
* on virtualized host, this may happen. * but we may have a value from parsing `/proc/cpuinfo` * in this case, we do not return the error if we fail to extra a value from `cpufreq/cpuinfo_max_freq`
This commit is contained in:
parent
10a1ae2123
commit
3dc4e52844
|
@ -80,12 +80,22 @@ func finishCPUInfo(c *InfoStat) error {
|
||||||
// of the value from /proc/cpuinfo because we want to report the maximum
|
// of the value from /proc/cpuinfo because we want to report the maximum
|
||||||
// clock-speed of the CPU for c.Mhz, matching the behaviour of Windows
|
// clock-speed of the CPU for c.Mhz, matching the behaviour of Windows
|
||||||
lines, err = common.ReadLines(sysCPUPath(c.CPU, "cpufreq/cpuinfo_max_freq"))
|
lines, err = common.ReadLines(sysCPUPath(c.CPU, "cpufreq/cpuinfo_max_freq"))
|
||||||
|
// if we encounter errors below but has a value from parsing /proc/cpuinfo
|
||||||
|
// then we ignore the error
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
if c.Mhz == 0 {
|
||||||
return err
|
return err
|
||||||
|
} else {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
}
|
}
|
||||||
value, err = strconv.ParseFloat(lines[0], 64)
|
value, err = strconv.ParseFloat(lines[0], 64)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
if c.Mhz == 0 {
|
||||||
return err
|
return err
|
||||||
|
} else {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
}
|
}
|
||||||
c.Mhz = value/1000.0 // value is in kHz
|
c.Mhz = value/1000.0 // value is in kHz
|
||||||
return nil
|
return nil
|
||||||
|
|
Loading…
Reference in New Issue