Skip to content

Commit 1385086

Browse files
authored
CNF-16638: Disable RPS by default (#1370)
* CNF-16638: Disable RPS by default This disables RPS even for realtime workloads. Those should be mindful of what syscalls are used from the latency sensitive threads and so not affected. The rest of the system and workloads using kernel based networking will see better performance, because the internal queueing will be skipped in favor of direct packet delivery. This PR was generated with the help of clause-4-sonnet AI LLM model as interpreted by the Cursor IDE. * Sync rendered manifests
1 parent 62f34eb commit 1385086

File tree

15 files changed

+173
-265
lines changed

15 files changed

+173
-265
lines changed

docs/performanceprofile/configuration_hotfixes.md

Lines changed: 42 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -10,44 +10,72 @@ Default tunings are applied with the [openshift-performance](../../assets/perfor
1010

1111
## RPS settings
1212

13-
The default RPS settings for a performance profile are to set the RPS mask as the [reserved CPUs](performance_profile.md#cpu),\
13+
RPS (Receive Packet Steering) settings are now disabled by default for all performance profiles.\
14+
When enabled via annotation, RPS settings configure the RPS mask as the [reserved CPUs](performance_profile.md#cpu),\
1415
on the host level for all network devices excluding virtual(veth) devices and physical devices(pci)\
1516
and on the container level for all virtual network devices(veth).
16-
### RPS and workload hints
17+
### Enabling RPS
1718

18-
When the realtime workload hint is explicitly disabled there is no need for any RPS settings to be applied since it is relevant only for the realtime use case.\
19-
The following will result in no RPS settings applied on the cluster at all:
19+
To enable RPS settings, use the annotation `performance.openshift.io/enable-rps` with value `"true"` or `"enable"`:\
2020

2121
```yaml
2222
performance_profile.yaml
2323
apiVersion: performance.openshift.io/v2
2424
kind: PerformanceProfile
2525
metadata:
2626
name: example-performanceprofile
27+
annotations:
28+
performance.openshift.io/enable-rps: "enable"
2729
spec:
28-
workloadHints:
29-
realTime: false
30+
# ... rest of profile spec
3031
```
3132

32-
In special cases where there is a need to explicitly specify the realtime workload hint as false but keep the RPS settings,
33-
an override annotation `performance.openshift.io/enable-rps` could be added to the performance profile that will keep the default [RPS settings](#rps-settings):
33+
You can also use `"true"` as the value:
34+
35+
```yaml
36+
performance_profile.yaml
37+
apiVersion: performance.openshift.io/v2
38+
kind: PerformanceProfile
39+
metadata:
40+
name: example-performanceprofile
41+
annotations:
42+
performance.openshift.io/enable-rps: "true"
43+
spec:
44+
# ... rest of profile spec
45+
```
46+
47+
The following configurations will result in no RPS settings applied on the cluster:
48+
49+
**Default behavior (no annotation):**
50+
```yaml
51+
performance_profile.yaml
52+
apiVersion: performance.openshift.io/v2
53+
kind: PerformanceProfile
54+
metadata:
55+
name: example-performanceprofile
56+
spec:
57+
# No annotation needed - RPS is disabled by default
58+
workloadHints:
59+
realTime: true
60+
```
3461
62+
**Explicitly disabled with annotation:**
3563
```yaml
3664
performance_profile.yaml
3765
apiVersion: performance.openshift.io/v2
3866
kind: PerformanceProfile
3967
metadata:
4068
name: example-performanceprofile
4169
annotations:
42-
performance.openshift.io/enable-rps: "true"
70+
performance.openshift.io/enable-rps: "disable"
4371
spec:
4472
workloadHints:
45-
realTime: false
73+
realTime: true
4674
```
4775
4876
### Enable RPS on physical devices annotation
4977
50-
In case there is a need to set RPS mask for physical(pci) devices as well on the host side an override annotation `performance.openshift.io/enable-physical-dev-rps` to the default [RPS settings](#rps-settings) could be added to the performance profile:
78+
To enable RPS mask for physical(pci) devices as well on the host side, both RPS must be enabled and the physical device annotation must be set:
5179
5280
```yaml
5381
performance_profile.yaml
@@ -56,11 +84,12 @@ kind: PerformanceProfile
5684
metadata:
5785
name: example-performanceprofile
5886
annotations:
87+
performance.openshift.io/enable-rps: "enable"
5988
performance.openshift.io/enable-physical-dev-rps: "true"
6089
```
6190
62-
> Note: `performance.openshift.io/enable-physical-dev-rps` annotation can be applied only when realtime workload hint is
63-
NOT explicitly set to false unless `performance.openshift.io/enable-rps` is set to true.
91+
> Note: `performance.openshift.io/enable-physical-dev-rps` annotation requires
92+
`performance.openshift.io/enable-rps` to be set to an enabling value ("true" or "enable").
6493

6594
## Additional kernel arguments
6695

pkg/apis/performanceprofile/v2/performanceprofile_types.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,8 @@ const PerformanceProfilePauseAnnotation = "performance.openshift.io/pause-reconc
3030
// network devices by including physical interfaces from netdev-rps rule.
3131
const PerformanceProfileEnablePhysicalRpsAnnotation = "performance.openshift.io/enable-physical-dev-rps"
3232

33-
// PerformanceProfileEnableRpsAnnotation is an emergancy annotation
34-
// that ignores the removal of all RPS settings when realtime workload hint is explicitly set to false.
33+
// PerformanceProfileEnableRpsAnnotation enables RPS settings which are now disabled by default.
34+
// Valid values: "true", "enable" (to enable), "false", "disable" (to disable).
3535
const PerformanceProfileEnableRpsAnnotation = "performance.openshift.io/enable-rps"
3636

3737
// PerformanceProfileSpec defines the desired state of PerformanceProfile.

pkg/performanceprofile/controller/performanceprofile/components/machineconfig/machineconfig_test.go

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import (
66
"errors"
77
"fmt"
88
"regexp"
9+
"strings"
910

1011
"k8s.io/utils/ptr"
1112

@@ -116,6 +117,54 @@ var _ = Describe("Machine Config", func() {
116117
Expect(f.Name).To(Not(ContainSubstring("rps")), "rps systemd unit %s should not be present", f.Name)
117118
}
118119
})
120+
121+
It("should create machine config with no trace of RPS when explicitly disabled with 'disable'", func() {
122+
profile := testutils.NewPerformanceProfile("test")
123+
profile.Annotations = map[string]string{}
124+
profile.Annotations[performancev2.PerformanceProfileEnableRpsAnnotation] = "disable"
125+
126+
mc, err := New(profile, &components.MachineConfigOptions{})
127+
Expect(err).ToNot(HaveOccurred())
128+
129+
result := igntypes.Config{}
130+
131+
err = json.Unmarshal(mc.Spec.Config.Raw, &result)
132+
Expect(err).ToNot(HaveOccurred())
133+
134+
for _, f := range result.Storage.Files {
135+
Expect(f.Path).To(Not(ContainSubstring("rps")), "rps configuration %s should not be present", f.Path)
136+
}
137+
138+
for _, f := range result.Systemd.Units {
139+
Expect(f.Name).To(Not(ContainSubstring("rps")), "rps systemd unit %s should not be present", f.Name)
140+
}
141+
})
142+
})
143+
144+
Context("machine config creation with enabled RPS using alternative values", func() {
145+
It("should create machine config with RPS configuration when enabled with 'enable'", func() {
146+
profile := testutils.NewPerformanceProfile("test")
147+
profile.Annotations = map[string]string{}
148+
profile.Annotations[performancev2.PerformanceProfileEnableRpsAnnotation] = "enable"
149+
150+
mc, err := New(profile, &components.MachineConfigOptions{})
151+
Expect(err).ToNot(HaveOccurred())
152+
153+
result := igntypes.Config{}
154+
155+
err = json.Unmarshal(mc.Spec.Config.Raw, &result)
156+
Expect(err).ToNot(HaveOccurred())
157+
158+
// Should have RPS-related files and services
159+
rpsFilesFound := false
160+
for _, f := range result.Storage.Files {
161+
if strings.Contains(f.Path, "rps") {
162+
rpsFilesFound = true
163+
break
164+
}
165+
}
166+
Expect(rpsFilesFound).To(BeTrue(), "RPS configuration files should be present")
167+
})
119168
})
120169

121170
Context("with hugepages with specified NUMA node and offlinedCPUs", func() {

pkg/performanceprofile/controller/performanceprofile/components/profile/profile.go

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -74,16 +74,15 @@ func IsRpsEnabled(profile *performancev2.PerformanceProfile) bool {
7474
if profile.Annotations != nil {
7575
// First check overrides
7676
isRpsEnabled, ok := profile.Annotations[performancev2.PerformanceProfileEnableRpsAnnotation]
77-
if ok && isRpsEnabled == "true" {
77+
if ok && (isRpsEnabled == "true" || isRpsEnabled == "enable") {
7878
return true
79-
} else if ok && isRpsEnabled == "false" {
79+
} else if ok && (isRpsEnabled == "false" || isRpsEnabled == "disable") {
8080
return false
8181
}
8282
}
8383

84-
// The default behavior enables RPS for real time workloads
85-
return profile.Spec.WorkloadHints == nil ||
86-
profile.Spec.WorkloadHints.RealTime == nil || *profile.Spec.WorkloadHints.RealTime
84+
// The default behavior is now to disable RPS
85+
return false
8786
}
8887

8988
func IsMixedCPUsEnabled(profile *performancev2.PerformanceProfile) bool {

pkg/performanceprofile/controller/performanceprofile/components/profile/profile_test.go

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,56 @@ var _ = Describe("PerformanceProfile", func() {
5858

5959
})
6060
})
61+
62+
Describe("RPS Configuration", func() {
63+
Context("IsRpsEnabled", func() {
64+
It("should return false by default", func() {
65+
// No annotations, should default to false
66+
result := IsRpsEnabled(profile)
67+
Expect(result).To(BeFalse())
68+
})
69+
70+
It("should return true when annotation is 'true'", func() {
71+
profile.Annotations = map[string]string{
72+
performancev2.PerformanceProfileEnableRpsAnnotation: "true",
73+
}
74+
result := IsRpsEnabled(profile)
75+
Expect(result).To(BeTrue())
76+
})
77+
78+
It("should return true when annotation is 'enable'", func() {
79+
profile.Annotations = map[string]string{
80+
performancev2.PerformanceProfileEnableRpsAnnotation: "enable",
81+
}
82+
result := IsRpsEnabled(profile)
83+
Expect(result).To(BeTrue())
84+
})
85+
86+
It("should return false when annotation is 'false'", func() {
87+
profile.Annotations = map[string]string{
88+
performancev2.PerformanceProfileEnableRpsAnnotation: "false",
89+
}
90+
result := IsRpsEnabled(profile)
91+
Expect(result).To(BeFalse())
92+
})
93+
94+
It("should return false when annotation is 'disable'", func() {
95+
profile.Annotations = map[string]string{
96+
performancev2.PerformanceProfileEnableRpsAnnotation: "disable",
97+
}
98+
result := IsRpsEnabled(profile)
99+
Expect(result).To(BeFalse())
100+
})
101+
102+
It("should return false when annotation has invalid value", func() {
103+
profile.Annotations = map[string]string{
104+
performancev2.PerformanceProfileEnableRpsAnnotation: "invalid",
105+
}
106+
result := IsRpsEnabled(profile)
107+
Expect(result).To(BeFalse())
108+
})
109+
})
110+
})
61111
})
62112

63113
func setValidNodeSelector(profile *performancev2.PerformanceProfile) {

test/e2e/performanceprofile/functests/1_performance/performance.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -375,7 +375,7 @@ var _ = Describe("[rfe_id:27368][performance]", Ordered, func() {
375375
})
376376
It("[test_id: 59572] Check RPS Mask is applied to at least one single rx queue on all veth interface", func() {
377377
if !profileutil.IsRpsEnabled(profile) {
378-
Skip("realTime Workload Hints is not enabled")
378+
Skip("RPS is disabled by default - test skipped")
379379
}
380380
count := 0
381381
expectedRPSCPUs, err := cpuset.Parse(string(*profile.Spec.CPU.Reserved))
@@ -414,7 +414,7 @@ var _ = Describe("[rfe_id:27368][performance]", Ordered, func() {
414414
})
415415
It("[test_id:55012] Should have the correct RPS configuration", func() {
416416
if !profileutil.IsRpsEnabled(profile) {
417-
Skip("realTime Workload Hints is not enabled")
417+
Skip("RPS is disabled by default - test skipped")
418418
}
419419

420420
expectedRPSCPUs, err := cpuset.Parse(string(*profile.Spec.CPU.Reserved))
@@ -487,7 +487,7 @@ var _ = Describe("[rfe_id:27368][performance]", Ordered, func() {
487487
}
488488
}
489489
})
490-
It("[test_id:54190] Should not have RPS configuration set when realtime workload hint is explicitly set", func() {
490+
It("[test_id:54190] Should not have RPS configuration set by default", func() {
491491
if !profileutil.IsRpsEnabled(profile) {
492492
for _, node := range workerRTNodes {
493493
// Verify the systemd RPS services were not created

test/e2e/performanceprofile/functests/2_performance_update/updating_profile.go

Lines changed: 23 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1022,6 +1022,21 @@ var _ = Describe("[rfe_id:28761][performance] Updating parameters in performance
10221022
})
10231023

10241024
It("[test_id:56006]Verify systemd unit file gets updated when the reserved cpus are modified", func() {
1025+
// Enable RPS for this test since we're specifically testing RPS functionality
1026+
if profile.Annotations == nil {
1027+
profile.Annotations = make(map[string]string)
1028+
}
1029+
profile.Annotations[performancev2.PerformanceProfileEnableRpsAnnotation] = "enable"
1030+
1031+
By("Updating the performance profile to enable RPS")
1032+
profiles.UpdateWithRetry(profile)
1033+
1034+
By(fmt.Sprintf("Applying changes in performance profile and waiting until %s will start updating", poolName))
1035+
profilesupdate.WaitForTuningUpdating(context.TODO(), profile)
1036+
1037+
By(fmt.Sprintf("Waiting when %s finishes updates", poolName))
1038+
profilesupdate.WaitForTuningUpdated(context.TODO(), profile)
1039+
10251040
var reserved, isolated cpuset.CPUSet
10261041
var onlineCPUInt int
10271042
for _, node := range workerRTNodes {
@@ -1115,18 +1130,16 @@ var _ = Describe("[rfe_id:28761][performance] Updating parameters in performance
11151130
}
11161131
})
11171132

1118-
It("[test_id:54191]Verify RPS Mask is not applied when RealtimeHint is disabled", func() {
1119-
By("Modifying profile")
1120-
profile.Spec.WorkloadHints = &performancev2.WorkloadHints{
1121-
HighPowerConsumption: ptr.To(false),
1122-
RealTime: ptr.To(false),
1123-
PerPodPowerManagement: ptr.To(false),
1124-
}
1133+
It("[test_id:54191]Verify RPS Mask is not applied by default", func() {
1134+
// This test verifies that RPS is disabled by default
1135+
// No need to modify workload hints since RPS is disabled by default now
11251136

1126-
profile.Spec.RealTimeKernel = &performancev2.RealTimeKernel{
1127-
Enabled: ptr.To(false),
1137+
// Ensure the profile doesn't have RPS enabled
1138+
if profile.Annotations != nil {
1139+
delete(profile.Annotations, performancev2.PerformanceProfileEnableRpsAnnotation)
11281140
}
1129-
By("Updating the performance profile")
1141+
1142+
By("Updating the performance profile to ensure RPS is disabled")
11301143
profiles.UpdateWithRetry(profile)
11311144

11321145
By(fmt.Sprintf("Applying changes in performance profile and waiting until %s will start updating", poolName))

test/e2e/performanceprofile/testdata/render-expected-output/bootstrap/extra-mcp/openshift-bootstrap-master_machineconfig.yaml

Lines changed: 0 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -28,13 +28,6 @@ spec:
2828
mode: 448
2929
path: /usr/local/bin/hugepages-allocation.sh
3030
user: {}
31-
- contents:
32-
source: data:text/plain;charset=utf-8;base64,IyEvdXNyL2Jpbi9lbnYgYmFzaAoKZnVuY3Rpb24gc2V0X3F1ZXVlX3Jwc19tYXNrKCkgewojIHJlcGxhY2UgeDJkIHdpdGggaHlwaGVuICgtKSB3aGljaCBpcyBhbiBlc2NhcGVkIGNoYXJhY3RlcgojIHRoYXQgd2FzIGFkZGVkIGJ5IHN5c3RlbWQtZXNjYXBlIGluIG9yZGVyIHRvIGVzY2FwZSB0aGUgc3lzdGVtZCB1bml0IG5hbWUgdGhhdCBpbnZva2VzIHRoaXMgc2NyaXB0CnBhdGg9JHtwYXRoL3gyZC8tfQojIHNldCBycHMgYWZmaW5pdHkgZm9yIHRoZSBxdWV1ZQplY2hvICIke21hc2t9IiAgMj4gL2Rldi9udWxsID4gIi9zeXMvJHtwYXRofS9ycHNfY3B1cyIKIyB3ZSByZXR1cm4gMCBiZWNhdXNlIHRoZSAnZWNobycgY29tbWFuZCBtaWdodCBmYWlsIGlmIHRoZSBkZXZpY2UgcGF0aCB0byB3aGljaCB0aGUgcXVldWUgYmVsb25ncyBoYXMgY2hhbmdlZC4KIyB0aGlzIGNhbiBoYXBwZW4gaW4gY2FzZSBvZiBTUkktT1YgZGV2aWNlcyByZW5hbWluZy4KcmV0dXJuIDAKfQoKZnVuY3Rpb24gc2V0X25ldF9kZXZfcnBzX21hc2soKSB7CiAgIyBpbiBjYXNlIG9mIGRldmljZSB3ZSB3YW50IHRvIGl0ZXJhdGUgdGhyb3VnaCBhbGwgcXVldWVzCmZvciBpIGluIC9zeXMvIiR7cGF0aH0iL3F1ZXVlcy9yeC0qOyBkbwogIGVjaG8gIiR7bWFza30iIDI+IC9kZXYvbnVsbCA+ICIke2l9L3Jwc19jcHVzIgpkb25lCiMgd2UgcmV0dXJuIDAgYmVjYXVzZSB0aGUgJ2VjaG8nIGNvbW1hbmQgbWlnaHQgZmFpbCBpZiB0aGUgZGV2aWNlIHBhdGggdG8gd2hpY2ggdGhlIHF1ZXVlIGJlbG9uZ3MgaGFzIGNoYW5nZWQuCiMgdGhpcyBjYW4gaGFwcGVuIGluIGNhc2Ugb2YgU1JJLU9WIGRldmljZXMgcmVuYW1pbmcuCnJldHVybiAwCiB9CgpwYXRoPSR7MX0KWyAtbiAiJHtwYXRofSIgXSB8fCB7IGVjaG8gIlRoZSBkZXZpY2UgcGF0aCBhcmd1bWVudCBpcyBtaXNzaW5nIiA+JjIgOyBleGl0IDE7IH0KCm1hc2s9JHsyfQpbIC1uICIke21hc2t9IiBdIHx8IHsgZWNobyAiVGhlIG1hc2sgYXJndW1lbnQgaXMgbWlzc2luZyIgPiYyIDsgZXhpdCAxOyB9CgppZiBbWyAiJHtwYXRofSIgPX4gInF1ZXVlcyIgXV07IHRoZW4KIHNldF9xdWV1ZV9ycHNfbWFzawplbHNlCiBzZXRfbmV0X2Rldl9ycHNfbWFzawpmaQo=
33-
verification: {}
34-
group: {}
35-
mode: 448
36-
path: /usr/local/bin/set-rps-mask.sh
37-
user: {}
3831
- contents:
3932
source: data:text/plain;charset=utf-8;base64,IyEvdXNyL2Jpbi9iYXNoCgpzZXQgLWV1byBwaXBlZmFpbAoKZm9yIGNwdSBpbiAke09GRkxJTkVfQ1BVUy8vLC8gfTsKICBkbwogICAgb25saW5lX2NwdV9maWxlPSIvc3lzL2RldmljZXMvc3lzdGVtL2NwdS9jcHUkY3B1L29ubGluZSIKICAgIGlmIFsgISAtZiAiJHtvbmxpbmVfY3B1X2ZpbGV9IiBdOyB0aGVuCiAgICAgIGVjaG8gIkVSUk9SOiAke29ubGluZV9jcHVfZmlsZX0gZG9lcyBub3QgZXhpc3QsIGFib3J0IHNjcmlwdCBleGVjdXRpb24iCiAgICAgIGV4aXQgMQogICAgZmkKICBkb25lCgplY2hvICJBbGwgY3B1cyBvZmZsaW5lZCBleGlzdHMsIHNldCB0aGVtIG9mZmxpbmUiCgpmb3IgY3B1IGluICR7T0ZGTElORV9DUFVTLy8sLyB9OwogIGRvCiAgICBvbmxpbmVfY3B1X2ZpbGU9Ii9zeXMvZGV2aWNlcy9zeXN0ZW0vY3B1L2NwdSRjcHUvb25saW5lIgogICAgZWNobyAwID4gIiR7b25saW5lX2NwdV9maWxlfSIKICAgIGVjaG8gIm9mZmxpbmUgY3B1IG51bSAkY3B1IgogIGRvbmUKCg==
4033
verification: {}
@@ -56,20 +49,6 @@ spec:
5649
mode: 420
5750
path: /etc/crio/crio.conf.d/99-runtimes.conf
5851
user: {}
59-
- contents:
60-
source: data:text/plain;charset=utf-8;base64,IyBBcHBseSB0aGUgUlBTIG1hc2sgb24gdGhlIHZpcnR1YWwgaW50ZXJmYWNlcyBvZiB0aGUgaG9zdCBieSBkZWZhdWx0LCBiZWNhc3VlCiMgZnJvbSB0aGUgY29udGFpbmVyIHBlcnNwZWN0aXZlIHRoZSBSUFMgbWFzayB0aGUgd2lsbCBiZSBjb25zdWx0ZWQsIGlzIHRoZSBvbmUgb24gdGhlIFJYIHNpZGUgb2YgdGhlIHZldGggaW4gdGhlIGhvc3QuCiMgQ29uc2lkZXIgdGhlIGZvbGxvd2luZyBkaWFncmFtOgojIFBvZCBBIDx2ZXRoMSAtIHZldGgyPiBob3N0IDx2ZXRoMyAtIHZldGg0PiBQb2QgQgojICB2ZXRoMidzIFJQUyBhZmZpbml0eSBpcyB0aGUgb25lIGRldGVybWluaW5nIHRoZSBDUFVzIHRoYXQgYXJlIGhhbmRsaW5nIHRoZSBwYWNrZXQgcHJvY2Vzc2luZyB3aGVuIHNlbmRpbmcgZGF0YSBmcm9tIFBvZCBBIHRvIHBvZCBCLgojIEFkZGl0aW9uYWwgY29tbW9uIHNjZW5hcmlvczoKIyAxLiBQb2QgQSA9IHNlbmRlciwgaG9zdCA9IHJlY2VpdmVyCiMgIFRoZSBSUFMgYWZmaW5pdHkgb2YgdGhlIGhvc3Qgc2lkZSBzaG91bGQgYmUgY29uc3VsdGVkIChiZWNhdXNlIGl04oCZcyB0aGUgcmVjZWl2ZXIpIGFuZCBpdCBzaG91bGQgYmUgc2V0IHRvIGNwdXMgbm90IHNlbnNpdGl2ZSB0byBwcmVlbXB0aW9uIChyZXNlcnZlZCBwb29sKS4KIyAyLiBQb2QgQSA9IHJlY2VpdmVyLCBob3N0ID0gc2VuZGVyCiMgIEluIGNhc2Ugb2Ygbm8gUlBTIG1hc2sgb24gdGhlIHJlY2VpdmVyIHNpZGUsIHRoZSBzZW5kZXIgbmVlZHMgdG8gcGF5IHRoZSBwcmljZSBhbmQgZG8gYWxsIHRoZSBwcm9jZXNzaW5nIG9uIGl0cyBjb3Jlcy4KbmV0LmNvcmUucnBzX2RlZmF1bHRfbWFzayA9IDAwMDAwMGZjCg==
61-
verification: {}
62-
group: {}
63-
mode: 420
64-
path: /etc/sysctl.d/99-default-rps-mask.conf
65-
user: {}
66-
- contents:
67-
source: data:text/plain;charset=utf-8;base64,U1VCU1lTVEVNPT0icXVldWVzIiwgQUNUSU9OPT0iYWRkIiwgRU5We0RFVlBBVEh9PT0iL2RldmljZXMvcGNpKi9xdWV1ZXMvcngqIiwgVEFHKz0ic3lzdGVtZCIsIFBST0dSQU09Ii9iaW4vc3lzdGVtZC1lc2NhcGUgLS1wYXRoIC0tdGVtcGxhdGU9dXBkYXRlLXJwc0Auc2VydmljZSAkZW52e0RFVlBBVEh9IiwgRU5We1NZU1RFTURfV0FOVFN9PSIlYyIKCiMgU1ItSU9WIGRldmljZXMgYXJlIG1vdmVkIChyZW5hbWVkKSwgaGVuY2Ugd2Ugd2FudCB0byBjYXRjaCB0aGlzIGV2ZW50IGFzIHdlbGwKU1VCU1lTVEVNPT0ibmV0IiwgQUNUSU9OPT0ibW92ZSIsIEVOVntERVZQQVRIfSE9Ii9kZXZpY2VzL3ZpcnR1YWwvbmV0LyoiLCBUQUcrPSJzeXN0ZW1kIiwgUFJPR1JBTT0iL2Jpbi9zeXN0ZW1kLWVzY2FwZSAtLXBhdGggLS10ZW1wbGF0ZT11cGRhdGUtcnBzQC5zZXJ2aWNlICRlbnZ7REVWUEFUSH0iLCBFTlZ7U1lTVEVNRF9XQU5UU309IiVjIgo=
68-
verification: {}
69-
group: {}
70-
mode: 420
71-
path: /etc/udev/rules.d/99-netdev-physical-rps.rules
72-
user: {}
7352
- contents:
7453
source: data:text/plain;charset=utf-8;base64,CltjcmlvLnJ1bnRpbWUud29ya2xvYWRzLm1hbmFnZW1lbnRdCmFjdGl2YXRpb25fYW5ub3RhdGlvbiA9ICJ0YXJnZXQud29ya2xvYWQub3BlbnNoaWZ0LmlvL21hbmFnZW1lbnQiCmFubm90YXRpb25fcHJlZml4ID0gInJlc291cmNlcy53b3JrbG9hZC5vcGVuc2hpZnQuaW8iCnJlc291cmNlcyA9IHsgImNwdXNoYXJlcyIgPSAwLCAiY3B1c2V0IiA9ICIyLTciIH0K
7554
verification: {}
@@ -128,14 +107,6 @@ spec:
128107
user: {}
129108
systemd:
130109
units:
131-
- contents: |
132-
[Unit]
133-
Description=Sets network devices RPS mask
134-
135-
[Service]
136-
Type=oneshot
137-
ExecStart=/usr/local/bin/set-rps-mask.sh %I 0
138-
name: update-rps@.service
139110
- contents: |
140111
[Unit]
141112
Description=Move services to reserved cpuset

0 commit comments

Comments
 (0)