-
Bug
-
Resolution: Duplicate
-
Major
-
None
-
4.13
-
Quality / Stability / Reliability
-
False
-
-
None
-
Moderate
-
No
-
None
-
None
-
None
-
None
-
None
-
None
-
None
-
None
-
None
-
None
-
None
Description of problem:
In 4.13, BestEffort pod cpu affinity is set to reserved cpuset only. In 4.12 and earlier, it uses reserved cpuset + free isolated cpuset.
The following example uses AWS SNO m6i.4xlarge 16vCPU 64GB mem.
$ oc label node --all sno-pp=enabled
$ oc label mcp --all sno-pp=enabled
$ oc create -f - <<EOF
apiVersion: performance.openshift.io/v2
kind: PerformanceProfile
metadata:
name: sno-pp
spec:
cpu:
reserved: 0-3
isolated: 4-15
machineConfigPoolSelector:
sno-pp: enabled
nodeSelector:
node-role.kubernetes.io/master: ""
EOF
$ oc create -f - <<EOF
apiVersion: machineconfiguration.openshift.io/v1
kind: KubeletConfig
metadata:
name: sno-pp
spec:
machineConfigPoolSelector:
matchLabels:
sno-pp: enabled
kubeletConfig:
cpuManagerPolicy: static
cpuManagerReconcilePeriod: 5s
reservedSystemCPUs: 0-3
EOF
$ oc new-project test
$ oc create deployment sleep-a --image=registry.access.redhat.com/ubi8/ubi -- /bin/bash -c "trap : TERM INT; sleep infinity & wait"
$ oc set resources deployment sleep-a --requests=cpu=1,memory=32Mi --limits=cpu=1,memory=32Mi
$ oc create deployment sleep-b --image=registry.access.redhat.com/ubi8/ubi -- /bin/bash -c "trap : TERM INT; sleep infinity & wait"
$ oc rsh deploy/sleep-a cat /proc/1/status | grep Cpus_allowed_list
4
$ oc rsh deploy/sleep-a cat /sys/fs/cgroup/cpuset/cpuset.cpus
4
$ oc rsh deploy/sleep-b cat /proc/1/status | grep Cpus_allowed_list
0-3
$ oc rsh deploy/sleep-b cat /sys/fs/cgroup/cpuset/cpuset.cpus
0-3,5-15
$ oc rsh deploy/sleep-b yes >/dev/null &
$ oc debug $NODE
# ps -C "yes" -L -o pid,lwp,pcpu,cpuid,time # cpuid shows 0, 1, 2, 3. No 5-15 used.
Version-Release number of selected component (if applicable):
4.13.2
How reproducible:
Always
Steps to Reproduce:
1. Configure cluster with PerformaceProfile reverved/isolated cpuset, enable cpumanager 2. Deploy BestEffort pod 3. Look at process Cpus_allowed_list
Actual results:
Process cpu affinity is set to reserved cpuset
Expected results:
Process cpu affinity is set to reserved cpuset + free isolated cpuset, just same as cgroups cpuset.cpus
Additional info:
- is duplicated by
-
OCPBUGS-15102 All burstable pods run with the reserved cpu affinity mask when PerformanceProfile is applied
-
- Closed
-