Skip to content

Commit

Permalink
add updater
Browse files Browse the repository at this point in the history
Signed-off-by: Zhang Kang <kang.zhang@intel.com>
  • Loading branch information
kangclzjc committed Apr 25, 2024
1 parent f82985f commit 3b537f9
Show file tree
Hide file tree
Showing 9 changed files with 448 additions and 292 deletions.
1 change: 1 addition & 0 deletions pkg/koordlet/resourceexecutor/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ import "flag"
const (
ReasonUpdateCgroups = "UpdateCgroups"
ReasonUpdateSystemConfig = "UpdateSystemConfig"
CreateCATGroup = "CreateCATGroup"
ReasonUpdateResctrl = "UpdateResctrl" // update resctrl tasks, schemata

EvictPodByNodeMemoryUsage = "EvictPodByNodeMemoryUsage"
Expand Down
62 changes: 51 additions & 11 deletions pkg/koordlet/resourceexecutor/resctrl_updater.go
Original file line number Diff line number Diff line change
Expand Up @@ -55,12 +55,20 @@ func (r *ResctrlSchemataResourceUpdater) Clone() ResourceUpdater {
}
}

func NewResctrlSchemataResource(group, schemata string) (ResourceUpdater, error) {
err := sysutil.InitCatGroupIfNotExist(group)
if err != nil {
return nil, err
}

//
//func NewCatCgroup(group string) (ResourceUpdater, error) {
// return &ResctrlSchemataResourceUpdater{
// DefaultResourceUpdater: DefaultResourceUpdater{
// key: "",
// file: group,
// value: "",
// updateFunc: UpdateResctrlSchemataFunc,
// },
// schemataRaw: schemataRaw,
// }, err
//}

func NewResctrlSchemataResource(group, schemata string, e *audit.EventHelper) (ResourceUpdater, error) {
if schemata == "" {
return nil, fmt.Errorf("schemata is nil")
}
Expand All @@ -71,7 +79,7 @@ func NewResctrlSchemataResource(group, schemata string) (ResourceUpdater, error)
// to obtain cache ids to replace the current method.
ids, _ := sysutil.CacheIdsCacheFunc()
schemataRaw := sysutil.NewResctrlSchemataRaw(ids).WithL3Num(len(ids))
err = schemataRaw.ParseResctrlSchemata(schemata, -1)
err := schemataRaw.ParseResctrlSchemata(schemata, -1)
if err != nil {
klog.Errorf("failed to parse %v", err)
}
Expand All @@ -92,15 +100,32 @@ func NewResctrlSchemataResource(group, schemata string) (ResourceUpdater, error)
schemataFile, schemataKey, schemataStr, schemata)
return &ResctrlSchemataResourceUpdater{
DefaultResourceUpdater: DefaultResourceUpdater{
key: schemataKey,
file: schemataFile,
value: schemataStr,
updateFunc: UpdateResctrlSchemataFunc,
key: schemataKey,
file: schemataFile,
value: schemataStr,
updateFunc: UpdateResctrlSchemataFunc,
eventHelper: e,
},
schemataRaw: schemataRaw,
}, err
}

func NewCatGroupResource(group string, e *audit.EventHelper) (ResourceUpdater, error) {
if group == "" {
return nil, fmt.Errorf("group is nil")
}
schemataFile := sysutil.ResctrlSchemata.Path(group)

klog.V(6).Infof("generate new cat group resource, file %s", schemataFile)
return &DefaultResourceUpdater{
key: group,
file: schemataFile,
value: "",
updateFunc: InitCatGroupFunc,
eventHelper: e,
}, nil
}

func NewResctrlL3SchemataResource(group, schemataDelta string, l3Num int) ResourceUpdater {
schemataFile := sysutil.ResctrlSchemata.Path(group)
l3SchemataKey := sysutil.L3SchemataPrefix + ":" + schemataFile
Expand Down Expand Up @@ -162,6 +187,21 @@ func CalculateResctrlL3TasksResource(group string, taskIds []int32) (ResourceUpd
return NewCommonDefaultUpdaterWithUpdateFunc(tasksPath, tasksPath, builder.String(), UpdateResctrlTasksFunc, eventHelper)
}

func InitCatGroupFunc(u ResourceUpdater) error {
r, ok := u.(*DefaultResourceUpdater)
if !ok {
return fmt.Errorf("not a ResctrlSchemataResourceUpdater")
}

err := sysutil.InitCatGroupIfNotExist(r.key)
if err != nil {
return err
}
_ = audit.V(3).Reason(CreateCATGroup).Message("Create %v to %v", u.Key(), u.Value()).Do()

return nil
}

func UpdateResctrlSchemataFunc(u ResourceUpdater) error {
r, ok := u.(*ResctrlSchemataResourceUpdater)
if !ok {
Expand Down
Loading

0 comments on commit 3b537f9

Please sign in to comment.