From 32c740191291b9a5a115ac7b82a38a15f835d7f8 Mon Sep 17 00:00:00 2001 From: Weizhen Wang Date: Mon, 13 Feb 2023 16:47:32 +0800 Subject: [PATCH] fix --- util/cgroup/cgroup_cpu.go | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/util/cgroup/cgroup_cpu.go b/util/cgroup/cgroup_cpu.go index aff7c3164360f..39fb03dae5849 100644 --- a/util/cgroup/cgroup_cpu.go +++ b/util/cgroup/cgroup_cpu.go @@ -25,7 +25,16 @@ var noCPUControllerDetected = errors.New("no cpu controller detected") // Helper function for getCgroupCPU. Root is always "/", except in tests. func getCgroupCPU(root string) (CPUUsage, error) { - path, err := detectControlPath(filepath.Join(root, procPathCGroup), "cpu,cpuacct") + cu, err := getCgroupCPUInternal(root, "cpu,cpuacct") + if err == nil { + return cu, nil + } + return getCgroupCPUInternal(root, "cpuacct,cpu") +} + +// getCgroupCPUInternal is to deal with different control keyword +func getCgroupCPUInternal(root, controlKeyword string) (CPUUsage, error) { + path, err := detectControlPath(filepath.Join(root, procPathCGroup), controlKeyword) if err != nil { return CPUUsage{}, err } @@ -35,7 +44,7 @@ func getCgroupCPU(root string) (CPUUsage, error) { return CPUUsage{}, noCPUControllerDetected } - mount, ver, err := getCgroupDetails(filepath.Join(root, procPathMountInfo), path, "cpu,cpuacct") + mount, ver, err := getCgroupDetails(filepath.Join(root, procPathMountInfo), path, controlKeyword) if err != nil { return CPUUsage{}, err }