Bug 1986681
Summary: | spec.cpu.reserved is not set correctly by default if only spec.cpu.isolated is defined in PerformanceProfile | ||
---|---|---|---|
Product: | OpenShift Container Platform | Reporter: | Xingbin Li <xingli> |
Component: | Performance Addon Operator | Assignee: | Mario Fernández <mariofer> |
Status: | CLOSED ERRATA | QA Contact: | Niranjan Mallapadi Raghavender <mniranja> |
Severity: | medium | Docs Contact: | |
Priority: | medium | ||
Version: | 4.7 | CC: | aos-bugs, grajaiya, msivak, shajmakh, yquinn |
Target Milestone: | --- | ||
Target Release: | 4.10.0 | ||
Hardware: | Unspecified | ||
OS: | Unspecified | ||
Whiteboard: | |||
Fixed In Version: | Doc Type: | Bug Fix | |
Doc Text: |
Cause: CPU reserved field its not required in CRD.
Consequence: CPU reserved can be ommited
Fix: Fix documentation and add CPU reserved required
Result: Correct Documentation
|
Story Points: | --- |
Clone Of: | Environment: | ||
Last Closed: | 2022-03-10 19:34:25 UTC | Type: | Bug |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: | |||
Bug Depends On: | |||
Bug Blocks: | 2033011 |
Description
Xingbin Li
2021-07-28 05:40:43 UTC
This is expected behavior. You are supposed to set both reserved and isolated in PerformanceProfile. The sets must not overlap and the sum of all the cpus mentioned must cover all the cpus expected on the workers in the targeted pool. (In reply to Martin Sivák from comment #1) > This is expected behavior. You are supposed to set both reserved and > isolated in PerformanceProfile. The sets must not overlap and the sum of all > the cpus mentioned must cover all the cpus expected on the workers in the > targeted pool. Martin, Thanks for your answer ! According to https://github.com/openshift-kni/performance-addon-operators/blob/master/docs/performance_profile.md#cpu, Field Description Scheme Required reserved *CPUSet false isolated CPUSet true seems 'reserved' field is not 'required' in PerformanceProfile, so do you mean that 'reserved' field is also 'requried' ? If kindly correct me if my understanding is wrong Thanks > If kindly correct me if my understanding is wrong <-- typo
Please kindly correct me if my understanding is wrong
Mario, lets double check our CRD metadata. This is mostly about https://github.com/openshift-kni/performance-addon-operators/blob/master/deploy/olm-catalog/performance-addon-operator/4.10.0/performance.openshift.io_performanceprofiles_crd.yaml this file and all its instances upstream and downstream. Yanir should be able to help you. Verification: version: ocp: Server Version: 4.10.0-0.nightly-2022-01-27-104747 pao: performance-addon-operator-container-v4.10.0-29 Steps: -Installed PAO: [root@cnfdf05-installer performance]# oc get csv NAME DISPLAY VERSION REPLACES PHASE performance-addon-operator.v4.10.0 Performance Addon Operator 4.10.0 Succeeded [root@cnfdf05-installer performance]# oc describe csv performance-addon-operator.v4.10.0 | grep Image containerImage: f:containerImage: f:relatedImages: Image: registry.redhat.io/openshift4/performance-addon-rhel8-operator@sha256:767ff13075b2f503afb6f26e265282488b79acaf22cbf1c77055c3e008fdda8d Related Images: Image: registry.redhat.io/openshift4/performance-addon-rhel8-operator@sha256:767ff13075b2f503afb6f26e265282488b79acaf22cbf1c77055c3e008fdda8d Image: registry.redhat.io/openshift4/performance-addon-rhel8-operator@sha256:767ff13075b2f503afb6f26e265282488b79acaf22cbf1c77055c3e008fdda8d # cat pp.yaml apiVersion: performance.openshift.io/v2 kind: PerformanceProfile metadata: name: performance spec: cpu: isolated: "3-5" realTimeKernel: enabled: true nodeSelector: node-role.kubernetes.io/worker-cnf: "" # oc apply -f pp.yaml The PerformanceProfile "performance" is invalid: spec.cpu.reserved: Required value # oc get performanceprofile No resources found # oc describe crd performanceprofiles ... Cpu: Description: CPU defines a set of CPU related parameters. Properties: Balance Isolated: Description: BalanceIsolated toggles whether or not the Isolated CPU set is eligible for load balancing work loads. When this option is set to "false", the Isolated CPU set will be static, meaning workloads have to explicitly assign each thread to a specific cpu in order to work across multiple CPUs. Setting this to "true" allows workloads to be balanced across CPUs. Setting this to "false" offers the most predictable performance for guaranteed workloads, but it offloads the complexity of cpu load balancing to the application. Defaults to "true" Type: boolean Isolated: Description: Isolated defines a set of CPUs that will be used to give to application threads the most execution time possible, which means removing as many extraneous tasks off a CPU as possible. It is important to notice the CPU manager can choose any CPU to run the workload except the reserved CPUs. In order to guarantee that your workload will run on the isolated CPU: 1. The union of reserved CPUs and isolated CPUs should include all online CPUs 2. The isolated CPUs field should be the complementary to reserved CPUs field Type: string Reserved: Description: Reserved defines a set of CPUs that will not be used for any container workloads initiated by kubelet. Type: string Required: isolated reserved <------- Verified successfully. Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory (OpenShift Container Platform 4.10 low-latency extras update), and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://access.redhat.com/errata/RHEA-2022:0640 |