New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[virt] DPDK cluster config: Enable AlignCPUs #69713
Conversation
/cc @bellka5 |
🤖 Mon Jan 08 14:06:37 - Prow CI generated the docs preview: https://69713--ocpdocs-pr.netlify.app |
26bc838
to
737e416
Compare
737e416
to
dd05394
Compare
/lgtm (CNV network QE) |
/cc @sjhala-ccs |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
/lgtm
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A few suggestions, otherwise LGTM
@@ -94,10 +94,21 @@ $ oc get performanceprofiles.performance.openshift.io profile-1 -o=jsonpath='{.s | |||
$ oc patch hyperconverged kubevirt-hyperconverged -n {CNVNamespace} \ | |||
--type='json' -p='[{"op": "add", "path": "/spec/defaultRuntimeClass", "value":"<runtimeclass-name>"}]' | |||
---- | |||
|
|||
. In case your DPDK-enabled worker nodes are using SMT (Simultaneous multithreading), enable the `AlignCPUs` enabler by editing the `HyperConverged` custom resource (CR): |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
. In case your DPDK-enabled worker nodes are using SMT (Simultaneous multithreading), enable the `AlignCPUs` enabler by editing the `HyperConverged` custom resource (CR): | |
. If your DPDK-enabled compute nodes use Simultaneous multithreading (SMT), enable the `AlignCPUs` enabler by editing the `HyperConverged` CR: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Also changed the end of the previous instruction to match.
+ | ||
[NOTE] | ||
==== | ||
Editing the `HyperConverged` CR changes a global setting that affects all VMs that are created after the change is applied. | ||
|
||
Enabling `AlignCPUs`, allows KubeVirt to request up to two additional dedicated CPUs in order to complete the total CPU count to an even parity when using |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Enabling `AlignCPUs`, allows KubeVirt to request up to two additional dedicated CPUs in order to complete the total CPU count to an even parity when using | |
By enabling `AlignCPUs`, you can request up to two additional dedicated CPUs to bring the total CPU count to an even parity when using |
This can be a separate note after step 7
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is done automatically by KubeVirt, no user involvement required.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Okay, suggestion to change KubeVirt to {VirtProductName} which will render as "OpenShift Virtualization" in the published doc. Plus, a couple of minor edits.
Enabling `AlignCPUs`, allows KubeVirt to request up to two additional dedicated CPUs in order to complete the total CPU count to an even parity when using | |
Enabling `AlignCPUs` allows {VirtProductName} to request up to two additional dedicated CPUs to bring the total CPU count to an even parity when using |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done.
---- | ||
$ oc patch hyperconverged kubevirt-hyperconverged -n {CNVNamespace} \ | ||
--type='json' -p='[{"op": "replace", "path": "/spec/featureGates/alignCPUs", "value": true}]' | ||
---- | ||
+ | ||
[NOTE] | ||
==== | ||
Editing the `HyperConverged` CR changes a global setting that affects all VMs that are created after the change is applied. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Editing the `HyperConverged` CR changes a global setting that affects all VMs that are created after the change is applied. | |
Editing the `HyperConverged` CR changes a global setting that affects all VMs that are created after the change is applied. |
I feel like this note should still be placed after step 6 because step 7 is conditional and might not apply to all users?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Separated the note to two distinct notes.
dd05394
to
23cb745
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
/lgtm
@@ -87,7 +87,7 @@ The compute nodes automatically restart after you apply the `MachineConfigPool` | |||
$ oc get performanceprofiles.performance.openshift.io profile-1 -o=jsonpath='{.status.runtimeClass}{"\n"}' | |||
---- | |||
|
|||
. Set the previously obtained `RuntimeClass` name as the default container runtime class for the `virt-launcher` pods by editing the `HyperConverged` custom resource (CR): | |||
. Set the previously obtained `RuntimeClass` name as the default container runtime class for the `virt-launcher` pods by editing the `HyperConverged` CR: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Because this is the first instance of "CR", I would suggest keeping it as it was previously, spelling out custom resource (CR)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done.
+ | ||
[NOTE] | ||
==== | ||
Editing the `HyperConverged` CR changes a global setting that affects all VMs that are created after the change is applied. | ||
|
||
Enabling `AlignCPUs`, allows KubeVirt to request up to two additional dedicated CPUs in order to complete the total CPU count to an even parity when using |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Okay, suggestion to change KubeVirt to {VirtProductName} which will render as "OpenShift Virtualization" in the published doc. Plus, a couple of minor edits.
Enabling `AlignCPUs`, allows KubeVirt to request up to two additional dedicated CPUs in order to complete the total CPU count to an even parity when using | |
Enabling `AlignCPUs` allows {VirtProductName} to request up to two additional dedicated CPUs to bring the total CPU count to an even parity when using |
In case the user's worker nodes have SMT [1] enabled, they will probably encounter CNV-31584 [2]. Add an instruction to enable the `AlignCPUs` enabler in HCO [3], so it will enable [4] KubeVirt to request up to two additional dedicated CPUs in order to complete the total CPU count to an even parity when using emulator thread isolation. [1] https://en.wikipedia.org/wiki/Simultaneous_multithreading [2] https://issues.redhat.com/browse/CNV-31584 [3] kubevirt/hyperconverged-cluster-operator#2695 [4] kubevirt/kubevirt#10872 Signed-off-by: Orel Misan <omisan@redhat.com>
23cb745
to
a184a6b
Compare
/retest |
@orelmisan: all tests passed! Full PR test history. Your PR dashboard. Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here. |
/cherrypick enterprise-4.15 |
@sjhala-ccs: new pull request created: #69903 In response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
[virt] DPDK cluster config: Enable AlignCPUs
In case the user's worker nodes have SMT [1] enabled, they will probably encounter CNV-31584 [2].
Add an instruction to enable the
AlignCPUs
enabler in HCO [3], so it will enable [4] KubeVirt to request up to two additional dedicated CPUs in order to complete the total CPU count to an even parity when usingemulator thread isolation.
[1] https://en.wikipedia.org/wiki/Simultaneous_multithreading
[2] https://issues.redhat.com/browse/CNV-31584
[3] kubevirt/hyperconverged-cluster-operator#2695
[4] kubevirt/kubevirt#10872
Version(s):
4.15+
Issue:
https://issues.redhat.com/browse/CNV-31584
Link to docs preview:
https://69713--ocpdocs-pr.netlify.app/openshift-enterprise/latest/virt/vm_networking/virt-using-dpdk-with-sriov#virt-configuring-cluster-dpdk_virt-using-dpdk-with-sriov
QE review:
Additional information: