Bug fix if no NUMA support in kernel
Signed-off-by: Bin Lu <bin.lu@arm.com>
This commit is contained in:
parent
55d76d7998
commit
5fe243eca8
@ -130,8 +130,8 @@ func parseCapacity(b []byte, r *regexp.Regexp) (uint64, error) {
|
|||||||
return m * 1024, err
|
return m * 1024, err
|
||||||
}
|
}
|
||||||
|
|
||||||
/* look for sysfs cpu path containing core_id */
|
/* Look for sysfs cpu path containing core_id */
|
||||||
/* such as: sys/bus/cpu/devices/cpu0/topology/core_id */
|
/* Such as: sys/bus/cpu/devices/cpu0/topology/core_id */
|
||||||
func getCoreIdFromCpuBus(cpuBusPath string, threadId int) (int, error) {
|
func getCoreIdFromCpuBus(cpuBusPath string, threadId int) (int, error) {
|
||||||
path := filepath.Join(cpuBusPath, fmt.Sprintf("cpu%d/topology", threadId))
|
path := filepath.Join(cpuBusPath, fmt.Sprintf("cpu%d/topology", threadId))
|
||||||
file := filepath.Join(path, "core_id")
|
file := filepath.Join(path, "core_id")
|
||||||
@ -154,8 +154,8 @@ func getCoreIdFromCpuBus(cpuBusPath string, threadId int) (int, error) {
|
|||||||
return int(coreId), nil
|
return int(coreId), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
/* look for sysfs cpu path containing node id */
|
/* Look for sysfs cpu path containing node id */
|
||||||
/* such as: /sys/bus/cpu/devices/cpu0/node%d */
|
/* Such as: /sys/bus/cpu/devices/cpu0/node%d */
|
||||||
func getNodeIdFromCpuBus(cpuBusPath string, threadId int) (int, error) {
|
func getNodeIdFromCpuBus(cpuBusPath string, threadId int) (int, error) {
|
||||||
path := filepath.Join(cpuBusPath, fmt.Sprintf("cpu%d", threadId))
|
path := filepath.Join(cpuBusPath, fmt.Sprintf("cpu%d", threadId))
|
||||||
|
|
||||||
@ -235,13 +235,15 @@ func GetTopology(sysFs sysfs.SysFs, cpuinfo string) ([]info.Node, int, error) {
|
|||||||
if isAArch64() {
|
if isAArch64() {
|
||||||
val, err = getCoreIdFromCpuBus(cpuBusPath, lastThread)
|
val, err = getCoreIdFromCpuBus(cpuBusPath, lastThread)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, -1, fmt.Errorf("could not parse core info from %q: %v", cpuBusPath, err)
|
// Report thread id if no NUMA
|
||||||
|
val = lastThread
|
||||||
}
|
}
|
||||||
lastCore = val
|
lastCore = val
|
||||||
|
|
||||||
val, err = getNodeIdFromCpuBus(cpuBusPath, lastThread)
|
val, err = getNodeIdFromCpuBus(cpuBusPath, lastThread)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, -1, fmt.Errorf("could not parse node info from %q: %v", cpuBusPath, err)
|
// Report node 0 if no NUMA
|
||||||
|
val = 0
|
||||||
}
|
}
|
||||||
lastNode = val
|
lastNode = val
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user