Skip to content

Commit

Permalink
fix comments
Browse files Browse the repository at this point in the history
Signed-off-by: Rouzip <[email protected]>
  • Loading branch information
Rouzip committed Jul 16, 2024
1 parent a56f235 commit 1b4da0f
Show file tree
Hide file tree
Showing 5 changed files with 93 additions and 13 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ func New(opt *framework.Options) framework.Collector {
// 4. check resctrl collector feature gate
func (r *resctrlCollector) Enabled() bool {
isResctrlEnabled, _ := system.IsSupportResctrl()
isResctrlCollectorEnabled, _ := system.IsResctrlCollectorAvailableByCpuInfo()
isResctrlCollectorEnabled, _ := system.IsSupportResctrlCollector()
return r.resctrlCollectorGate &&
isResctrlEnabled && isResctrlCollectorEnabled &&
system.IsVendorSupportResctrl() &&
Expand Down
16 changes: 16 additions & 0 deletions pkg/koordlet/resourceexecutor/resctrl_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -283,3 +283,19 @@ func TestResctrlReader(t *testing.T) {
})
}
}

func TestFakeReader(t *testing.T) {
t.Run("test fake reader ", func(t *testing.T) {
helper := system.NewFileTestUtil(t)
defer helper.Cleanup()
reader := NewResctrlReader()

l3Data, err := reader.ReadResctrlL3Stat("")
assert.Nil(t, l3Data)
assert.Error(t, err)

mbmData, err := reader.ReadResctrlMBStat("")
assert.Nil(t, mbmData)
assert.Error(t, err)
})
}
5 changes: 5 additions & 0 deletions pkg/koordlet/util/system/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,11 @@ func InitSupportConfigs() {
} else {
klog.V(4).Infof("resctrl supported: %v", isResctrlSupported)
}
if isResctrlCollectorSupported, err := IsSupportResctrlCollector(); err != nil {
klog.Warningf("failed to check resctrl collector support status, use %v, err: %v", isResctrlCollectorSupported, err)
} else {
klog.V(4).Infof("resctrl collector supported: %v", isResctrlCollectorSupported)
}
}

func NewHostModeConfig() *Config {
Expand Down
29 changes: 17 additions & 12 deletions pkg/koordlet/util/system/resctrl.go
Original file line number Diff line number Diff line change
Expand Up @@ -62,11 +62,13 @@ const (
)

var (
initLock sync.Mutex
isInit bool
isSupportResctrl bool
CacheIdsCacheFunc func() ([]int, error)
ARM_VENDOR_ID_MAP = map[string]struct{}{} // support MPAM ARM vendor ids
initLock sync.Mutex
isInit bool
isSupportResctrl bool
isSupportResctrlCollector bool
collectorOnceFunc sync.Once
CacheIdsCacheFunc func() ([]int, error)
ARM_VENDOR_ID_MAP = map[string]struct{}{} // support MPAM ARM vendor ids
)

func init() {
Expand Down Expand Up @@ -131,13 +133,16 @@ func IsSupportResctrl() (bool, error) {
return isSupportResctrl, nil
}

func IsResctrlCollectorAvailableByCpuInfo() (bool, error) {
initLock.Lock()
defer initLock.Unlock()
path := GetCPUInfoPath()
mbm, err1 := isResctrlMBMAvailableByCpuInfo(path)
cqm, err2 := isResctrlCQMAvailableByCpuInfo(path)
return mbm && cqm, multierr.Append(err1, err2)
func IsSupportResctrlCollector() (bool, error) {
var err error
collectorOnceFunc.Do(func() {
path := GetCPUInfoPath()
mbm, err1 := isResctrlMBMAvailableByCpuInfo(path)
cqm, err2 := isResctrlCQMAvailableByCpuInfo(path)
isSupportResctrlCollector = mbm && cqm
err = multierr.Append(err1, err2)
})
return isSupportResctrlCollector, err
}

var (
Expand Down
54 changes: 54 additions & 0 deletions pkg/koordlet/util/system/resctrl_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -537,3 +537,57 @@ func TestGetResctrlMonDataPath(t *testing.T) {
})
}
}

func TestIsVendorSupportResctrl(t *testing.T) {
// use HiSilicon for example
ARM_VENDOR_ID_MAP["HiSilicon"] = struct{}{}
type args struct {
vendorID string
}
tests := []struct {
name string
args args
want bool
}{
{
name: "intel",
args: args{
vendorID: "GenuineIntel",
},
want: true,
},
{
name: "AMD",
args: args{
vendorID: "AuthenticAMD",
},
want: true,
},
{
name: "HiSilicon",
args: args{
vendorID: "HiSilicon",
},
want: true,
},
{
name: "NVIDIA",
args: args{
vendorID: "NVIDIA",
},
want: false,
},
}

for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
helper := NewFileTestUtil(t)
defer helper.Cleanup()
p := GetCPUInfoPath()
helper.WriteFileContents(p, "vendor_id : "+tt.args.vendorID)

got := IsVendorSupportResctrl()
assert.Equal(t, tt.want, got)
})
}
}

0 comments on commit 1b4da0f

Please sign in to comment.