Skip to content

Commit

Permalink
Merge pull request google#2567 from katarzyna-z/kk-fix-core-id
Browse files Browse the repository at this point in the history
Fix google#2566 warning instead of error when core_id or physical_package_id not available
  • Loading branch information
dashpole authored Jun 9, 2020
2 parents 196b510 + cff7e58 commit 1098996
Show file tree
Hide file tree
Showing 3 changed files with 326 additions and 12 deletions.
16 changes: 8 additions & 8 deletions utils/sysfs/fakesysfs/fake.go
Original file line number Diff line number Diff line change
Expand Up @@ -62,10 +62,10 @@ type FakeSysFs struct {
cpuPathErr error

coreThread map[string]string
coreIDErr error
coreIDErr map[string]error

physicalPackageIDs map[string]string
physicalPackageIDErr error
physicalPackageIDErr map[string]error

memTotal string
memErr error
Expand All @@ -86,11 +86,11 @@ func (fs *FakeSysFs) GetCPUsPaths(cpusPath string) ([]string, error) {
}

func (fs *FakeSysFs) GetCoreID(coreIDPath string) (string, error) {
return fs.coreThread[coreIDPath], fs.coreIDErr
return fs.coreThread[coreIDPath], fs.coreIDErr[coreIDPath]
}

func (fs *FakeSysFs) GetCPUPhysicalPackageID(cpuPath string) (string, error) {
return fs.physicalPackageIDs[cpuPath], fs.physicalPackageIDErr
return fs.physicalPackageIDs[cpuPath], fs.physicalPackageIDErr[cpuPath]
}

func (fs *FakeSysFs) GetMemInfo(nodePath string) (string, error) {
Expand Down Expand Up @@ -166,14 +166,14 @@ func (fs *FakeSysFs) SetCPUsPaths(paths map[string][]string, err error) {
fs.cpuPathErr = err
}

func (fs *FakeSysFs) SetCoreThreads(coreThread map[string]string, err error) {
func (fs *FakeSysFs) SetCoreThreads(coreThread map[string]string, coreThreadErrors map[string]error) {
fs.coreThread = coreThread
fs.coreIDErr = err
fs.coreIDErr = coreThreadErrors
}

func (fs *FakeSysFs) SetPhysicalPackageIDs(physicalPackageIDs map[string]string, err error) {
func (fs *FakeSysFs) SetPhysicalPackageIDs(physicalPackageIDs map[string]string, physicalPackageIDErrors map[string]error) {
fs.physicalPackageIDs = physicalPackageIDs
fs.physicalPackageIDErr = err
fs.physicalPackageIDErr = physicalPackageIDErrors
}

func (fs *FakeSysFs) SetMemory(memTotal string, err error) {
Expand Down
21 changes: 18 additions & 3 deletions utils/sysinfo/sysinfo.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ package sysinfo

import (
"fmt"
"os"
"regexp"
"strconv"
"strings"
Expand Down Expand Up @@ -265,6 +266,11 @@ func getCPUTopology(sysFs sysfs.SysFs) ([]info.Node, int, error) {
return nil, 0, err
}

if len(cpusByPhysicalPackageID) == 0 {
klog.Warningf("Cannot read any physical package id for any CPU")
return nil, cpusCount, nil
}

for physicalPackageID, cpus := range cpusByPhysicalPackageID {
node := info.Node{Id: physicalPackageID}

Expand All @@ -290,7 +296,10 @@ func getCpusByPhysicalPackageID(sysFs sysfs.SysFs, cpusPaths []string) (map[int]
for _, cpuPath := range cpusPaths {

rawPhysicalPackageID, err := sysFs.GetCPUPhysicalPackageID(cpuPath)
if err != nil {
if os.IsNotExist(err) {
klog.Warningf("Cannot read physical package id for %s, physical_package_id file does not exist, err: %s", cpuPath, err)
continue
} else if err != nil {
return nil, err
}

Expand Down Expand Up @@ -377,7 +386,10 @@ func getCoresInfo(sysFs sysfs.SysFs, cpuDirs []string) ([]info.Core, error) {
}

rawPhysicalID, err := sysFs.GetCoreID(cpuDir)
if err != nil {
if os.IsNotExist(err) {
klog.Warningf("Cannot read core id for %s, core_id file does not exist, err: %s", cpuDir, err)
continue
} else if err != nil {
return nil, err
}
physicalID, err := strconv.Atoi(rawPhysicalID)
Expand Down Expand Up @@ -405,7 +417,10 @@ func getCoresInfo(sysFs sysfs.SysFs, cpuDirs []string) ([]info.Core, error) {
}

rawPhysicalPackageID, err := sysFs.GetCPUPhysicalPackageID(cpuDir)
if err != nil {
if os.IsNotExist(err) {
klog.Warningf("Cannot read physical package id for %s, physical_package_id file does not exist, err: %s", cpuDir, err)
continue
} else if err != nil {
return nil, err
}

Expand Down
Loading

0 comments on commit 1098996

Please sign in to comment.