Skip to content

Commit cd3e4fb

Browse files
authored
Merge pull request #568 from mvle/sysched-scoring
Sysched: add the implementation of SySched
2 parents a49a32e + 4b6ea59 commit cd3e4fb

File tree

102 files changed

+14674
-44
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

102 files changed

+14674
-44
lines changed

apis/config/register.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ func addKnownTypes(scheme *runtime.Scheme) error {
4343
&PreemptionTolerationArgs{},
4444
&TopologicalSortArgs{},
4545
&NetworkOverheadArgs{},
46+
&SySchedArgs{},
4647
)
4748
return nil
4849
}

apis/config/types.go

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -253,3 +253,15 @@ type NetworkOverheadArgs struct {
253253
// The NetworkTopology CRD name
254254
NetworkTopologyName string
255255
}
256+
257+
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
258+
259+
type SySchedArgs struct {
260+
metav1.TypeMeta
261+
262+
// CR namespace of the default profile for all system calls
263+
DefaultProfileNamespace string
264+
265+
// CR name of the default profile for all system calls
266+
DefaultProfileName string
267+
}

apis/config/v1/defaults.go

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,12 @@ var (
9696
DefaultWeightsName = "UserDefined"
9797
// DefaultNetworkTopologyName contains the networkTopology CR name to be used by networkAware plugins
9898
DefaultNetworkTopologyName = "nt-default"
99+
100+
// Defaults for SySched
101+
// DefaultSySchedProfileNamespace is the namesapce of the default syscall profile CR for SySched plugin
102+
DefaultSySchedProfileNamespace = "default"
103+
// DefaultSySchedProfileName is the name of the default syscall profile CR for SySched plugin
104+
DefaultSySchedProfileName = "all-syscalls"
99105
)
100106

101107
// SetDefaults_CoschedulingArgs sets the default parameters for Coscheduling plugin.
@@ -233,3 +239,14 @@ func SetDefaults_NetworkOverheadArgs(obj *NetworkOverheadArgs) {
233239
obj.NetworkTopologyName = &DefaultNetworkTopologyName
234240
}
235241
}
242+
243+
// SetDefaults_SySchedArgs sets the default parameters for SySchedArgs plugin.
244+
func SetDefaults_SySchedArgs(obj *SySchedArgs) {
245+
if obj.DefaultProfileNamespace == nil {
246+
obj.DefaultProfileNamespace = &DefaultSySchedProfileNamespace
247+
}
248+
249+
if obj.DefaultProfileName == nil {
250+
obj.DefaultProfileName = &DefaultSySchedProfileName
251+
}
252+
}

apis/config/v1/defaults_test.go

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -255,6 +255,25 @@ func TestSchedulingDefaults(t *testing.T) {
255255
NetworkTopologyName: pointer.StringPtr("nt-latency-costs"),
256256
},
257257
},
258+
{
259+
name: "empty config SySchedArgs",
260+
config: &SySchedArgs{},
261+
expect: &SySchedArgs{
262+
DefaultProfileNamespace: pointer.StringPtr("default"),
263+
DefaultProfileName: pointer.StringPtr("all-syscalls"),
264+
},
265+
},
266+
{
267+
name: "set non default SySchedArgs",
268+
config: &SySchedArgs{
269+
DefaultProfileNamespace: pointer.StringPtr("default"),
270+
DefaultProfileName: pointer.StringPtr("all-syscalls"),
271+
},
272+
expect: &SySchedArgs{
273+
DefaultProfileNamespace: pointer.StringPtr("default"),
274+
DefaultProfileName: pointer.StringPtr("all-syscalls"),
275+
},
276+
},
258277
}
259278

260279
for _, tc := range tests {

apis/config/v1/register.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ func addKnownTypes(scheme *runtime.Scheme) error {
4545
&PreemptionTolerationArgs{},
4646
&TopologicalSortArgs{},
4747
&NetworkOverheadArgs{},
48+
&SySchedArgs{},
4849
)
4950
return nil
5051
}

apis/config/v1/types.go

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -251,3 +251,15 @@ type NetworkOverheadArgs struct {
251251
// The NetworkTopology CRD name
252252
NetworkTopologyName *string `json:"networkTopologyName,omitempty"`
253253
}
254+
255+
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
256+
257+
type SySchedArgs struct {
258+
metav1.TypeMeta `json:",inline"`
259+
260+
// CR namespace of the default profile for all system calls
261+
DefaultProfileNamespace *string `json:"defaultProfileNamespace,omitempty"`
262+
263+
// CR name of the default profile for all system calls
264+
DefaultProfileName *string `json:"defaultProfileName,omitempty"`
265+
}

apis/config/v1/zz_generated.conversion.go

Lines changed: 40 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

apis/config/v1/zz_generated.deepcopy.go

Lines changed: 35 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

apis/config/v1/zz_generated.defaults.go

Lines changed: 5 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

apis/config/v1beta3/defaults.go

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,12 @@ var (
9696
DefaultWeightsName = "UserDefined"
9797
// DefaultNetworkTopologyName contains the networkTopology CR name to be used by networkAware plugins
9898
DefaultNetworkTopologyName = "nt-default"
99+
100+
// Defaults for SySched
101+
// DefaultSySchedProfileNamespace is the namesapce of the default syscall profile CR for SySched plugin
102+
DefaultSySchedProfileNamespace = "default"
103+
// DefaultSySchedProfileName is the name of the default syscall profile CR for SySched plugin
104+
DefaultSySchedProfileName = "all-syscalls"
99105
)
100106

101107
// SetDefaults_CoschedulingArgs sets the default parameters for Coscheduling plugin.
@@ -233,3 +239,14 @@ func SetDefaults_NetworkOverheadArgs(obj *NetworkOverheadArgs) {
233239
obj.NetworkTopologyName = &DefaultNetworkTopologyName
234240
}
235241
}
242+
243+
// SetDefaults_SySchedArgs sets the default parameters for SySchedArgs plugin.
244+
func SetDefaults_SySchedArgs(obj *SySchedArgs) {
245+
if obj.DefaultProfileNamespace == nil {
246+
obj.DefaultProfileNamespace = &DefaultSySchedProfileNamespace
247+
}
248+
249+
if obj.DefaultProfileName == nil {
250+
obj.DefaultProfileName = &DefaultSySchedProfileName
251+
}
252+
}

apis/config/v1beta3/defaults_test.go

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -255,6 +255,25 @@ func TestSchedulingDefaults(t *testing.T) {
255255
NetworkTopologyName: pointer.StringPtr("nt-latency-costs"),
256256
},
257257
},
258+
{
259+
name: "empty config SySchedArgs",
260+
config: &SySchedArgs{},
261+
expect: &SySchedArgs{
262+
DefaultProfileNamespace: pointer.StringPtr("default"),
263+
DefaultProfileName: pointer.StringPtr("all-syscalls"),
264+
},
265+
},
266+
{
267+
name: "set non default SySchedArgs",
268+
config: &SySchedArgs{
269+
DefaultProfileNamespace: pointer.StringPtr("default"),
270+
DefaultProfileName: pointer.StringPtr("all-syscalls"),
271+
},
272+
expect: &SySchedArgs{
273+
DefaultProfileNamespace: pointer.StringPtr("default"),
274+
DefaultProfileName: pointer.StringPtr("all-syscalls"),
275+
},
276+
},
258277
}
259278

260279
for _, tc := range tests {

apis/config/v1beta3/register.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ func addKnownTypes(scheme *runtime.Scheme) error {
4545
&PreemptionTolerationArgs{},
4646
&TopologicalSortArgs{},
4747
&NetworkOverheadArgs{},
48+
&SySchedArgs{},
4849
)
4950
return nil
5051
}

apis/config/v1beta3/types.go

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -254,3 +254,15 @@ type NetworkOverheadArgs struct {
254254
// The NetworkTopology CRD name
255255
NetworkTopologyName *string `json:"networkTopologyName,omitempty"`
256256
}
257+
258+
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
259+
260+
type SySchedArgs struct {
261+
metav1.TypeMeta `json:",inline"`
262+
263+
// CR namespace of the default profile for all system calls
264+
DefaultProfileNamespace *string `json:"defaultProfileNamespace,omitempty"`
265+
266+
// CR name of the default profile for all system calls
267+
DefaultProfileName *string `json:"defaultProfileName,omitempty"`
268+
}

apis/config/v1beta3/zz_generated.conversion.go

Lines changed: 40 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

apis/config/v1beta3/zz_generated.deepcopy.go

Lines changed: 35 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)