Skip to content
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

Add the AlignCPUs enabler #2695

Merged
merged 4 commits into from
Dec 29, 2023
Merged

Add the AlignCPUs enabler #2695

merged 4 commits into from
Dec 29, 2023

Conversation

orelmisan
Copy link
Member

What this PR does / why we need it:
PR kubevirt/kubevirt#10872 introduced a cluster-wide setting to enable 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.

In order to enable this functionality, in the Kubevirt CR:

  1. The AlignCPUs FG should be enabled.
  2. The alpha.kubevirt.io/EmulatorThreadCompleteToEvenParity annotation should be set with a value of an empty string.

Introduce a new enabler to HCO's API in order to toggle this behavior in KubeVirt.

The new API field is optional and defaults to false.

This PR replaces #2685.

Reviewer Checklist

Reviewers are supposed to review the PR for every aspect below one by one. To check an item means the PR is either "OK" or "Not Applicable" in terms of that item. All items are supposed to be checked before merging a PR.

  • PR Message
  • Commit Messages
  • How to test
  • Unit Tests
  • Functional Tests
  • User Documentation
  • Developer Documentation
  • Upgrade Scenario
  • Uninstallation Scenario
  • Backward Compatibility
  • Troubleshooting Friendly

Jira Ticket:

https://issues.redhat.com/browse/CNV-31584

Release note:

Add the AlignCPUs enabler

PR kubevirt/kubevirt#10872 introduced a cluster-wide
setting to enable 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.

Introduce a new enabler to HCO's API in order to toggle this
behavior in KubeVirt.

The new API field is optional and defaults to false.

The logic behind it will be introduced in the
following commits.

Signed-off-by: Orel Misan <omisan@redhat.com>
Signed-off-by: Ram Lavi <ralavi@redhat.com>
@kubevirt-bot
Copy link
Contributor

Skipping CI for Draft Pull Request.
If you want CI signal for your change, please convert it to an actual PR.
You can still manually trigger a test run with /test all

@kubevirt-bot kubevirt-bot added release-note Denotes a PR that will be considered when it comes time to generate release notes. do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. dco-signoff: yes Indicates the PR's author has DCO signed all their commits. labels Dec 27, 2023
Copy link

openshift-ci bot commented Dec 27, 2023

Skipping CI for Draft Pull Request.
If you want CI signal for your change, please convert it to an actual PR.
You can still manually trigger a test run with /test all

@orelmisan
Copy link
Member Author

/cc @nunnatsa

@coveralls
Copy link
Collaborator

coveralls commented Dec 27, 2023

Pull Request Test Coverage Report for Build 7346808755

  • 22 of 22 (100.0%) changed or added relevant lines in 1 file are covered.
  • No unchanged relevant lines lost coverage.
  • Overall coverage increased (+0.05%) to 86.482%

Totals Coverage Status
Change from base Build 7346384711: 0.05%
Covered Lines: 5310
Relevant Lines: 6140

💛 - Coveralls

@orelmisan orelmisan marked this pull request as ready for review December 27, 2023 14:56
@kubevirt-bot kubevirt-bot removed the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Dec 27, 2023
Copy link
Collaborator

@nunnatsa nunnatsa left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the PR @orelmisan!

Added some inline comments.

// Note: this feature is in Developer Preview.
// +optional
// +kubebuilder:default=false
// +default=false
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Don't we want it true by default?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since its an alpha "feature" in KubeVirt, IMO it should be explicitly enabled.

Copy link
Member Author

@orelmisan orelmisan Dec 27, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Furthermore, users of this feature probably also set the defaultRuntimeClass field, so they already need to edit the HCO manifest.
Both changes could be done in a single patch command.

@@ -303,6 +310,30 @@ func NewKubeVirt(hc *hcov1beta1.HyperConverged, opts ...string) (*kubevirtcorev1
return kv, nil
}

func isAnnotationStateMeetingRequirements(hc *hcov1beta1.HyperConverged, annotations map[string]string) bool {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure about the name of this function. I find the name both a bit too long, and too generic.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are there alternative names you have in mind?

Comment on lines 314 to 322
_, found := annotations[kubevirtcorev1.EmulatorThreadCompleteToEvenParity]

if (hc.Spec.FeatureGates.AlignCPUs == nil || !*hc.Spec.FeatureGates.AlignCPUs) && found {
return false
} else if (hc.Spec.FeatureGates.AlignCPUs != nil && *hc.Spec.FeatureGates.AlignCPUs) && !found {
return false
}

return true
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think what we really want to check here is that (required KV's annotation exists) XOR (found KV's annotation exists). I mean - here I don't care if the annotation is reuired or not. This is already done in NewKubeVirt (bysetAnnotationsToReqState).

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good idea!
Done.

if !reflect.DeepEqual(found.Spec, virt.Spec) ||
!reflect.DeepEqual(found.Labels, virt.Labels) {

isUpdateRequired := !reflect.DeepEqual(found.Spec, virt.Spec) ||
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since we only check the EmulatorThreadCompleteToEvenParity annotation, and not all the annotations, I think we don't need a new variable here, and we can use a regular if condition. It is not been used after the if.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.

@orelmisan
Copy link
Member Author

Change: Answered review comments.

@hco-bot
Copy link
Collaborator

hco-bot commented Dec 27, 2023

okd-hco-e2e-operator-sdk-gcp lane succeeded.
/override ci/prow/okd-hco-e2e-operator-sdk-aws
hco-e2e-upgrade-prev-operator-sdk-sno-aws lane succeeded.
/override ci/prow/hco-e2e-upgrade-prev-operator-sdk-sno-azure

@kubevirt-bot
Copy link
Contributor

@hco-bot: Overrode contexts on behalf of hco-bot: ci/prow/hco-e2e-upgrade-prev-operator-sdk-sno-azure, ci/prow/okd-hco-e2e-operator-sdk-aws

In response to this:

okd-hco-e2e-operator-sdk-gcp lane succeeded.
/override ci/prow/okd-hco-e2e-operator-sdk-aws
hco-e2e-upgrade-prev-operator-sdk-sno-aws lane succeeded.
/override ci/prow/hco-e2e-upgrade-prev-operator-sdk-sno-azure

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.

@hco-bot
Copy link
Collaborator

hco-bot commented Dec 27, 2023

hco-e2e-operator-sdk-sno-azure lane succeeded.
/override ci/prow/hco-e2e-operator-sdk-sno-aws
okd-hco-e2e-upgrade-operator-sdk-gcp lane succeeded.
/override ci/prow/okd-hco-e2e-upgrade-operator-sdk-aws

@kubevirt-bot
Copy link
Contributor

@hco-bot: Overrode contexts on behalf of hco-bot: ci/prow/hco-e2e-operator-sdk-sno-aws, ci/prow/okd-hco-e2e-upgrade-operator-sdk-aws

In response to this:

hco-e2e-operator-sdk-sno-azure lane succeeded.
/override ci/prow/hco-e2e-operator-sdk-sno-aws
okd-hco-e2e-upgrade-operator-sdk-gcp lane succeeded.
/override ci/prow/okd-hco-e2e-upgrade-operator-sdk-aws

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.

@hco-bot
Copy link
Collaborator

hco-bot commented Dec 27, 2023

hco-e2e-upgrade-prev-operator-sdk-sno-aws lane succeeded.
/override ci/prow/hco-e2e-upgrade-prev-operator-sdk-sno-azure

@kubevirt-bot
Copy link
Contributor

@hco-bot: Overrode contexts on behalf of hco-bot: ci/prow/hco-e2e-upgrade-prev-operator-sdk-sno-azure

In response to this:

hco-e2e-upgrade-prev-operator-sdk-sno-aws lane succeeded.
/override ci/prow/hco-e2e-upgrade-prev-operator-sdk-sno-azure

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.

@hco-bot
Copy link
Collaborator

hco-bot commented Dec 27, 2023

hco-e2e-kv-smoke-gcp lane succeeded.
/override ci/prow/hco-e2e-kv-smoke-azure

@kubevirt-bot
Copy link
Contributor

@hco-bot: Overrode contexts on behalf of hco-bot: ci/prow/hco-e2e-kv-smoke-azure

In response to this:

hco-e2e-kv-smoke-gcp lane succeeded.
/override ci/prow/hco-e2e-kv-smoke-azure

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.

Copy link
Collaborator

@nunnatsa nunnatsa left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added inline comments


It("should not add the AlignCPUs feature gate if AlignCPUs is not set in HyperConverged CR", func() {
hco.Spec.FeatureGates = hcov1beta1.HyperConvergedFeatureGates{
AlignCPUs: nil, //nolint SA1019
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: the nolint comment here is not needed.

This linter alert is about deprecated fields, as in the NonRoot field, but here the linter won't trigger any alert.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.

Comment on lines 1683 to 1711
It("should add the AlignCPUs feature gate if AlignCPUs is true in HyperConverged CR", func() {
hco.Spec.FeatureGates = hcov1beta1.HyperConvergedFeatureGates{
AlignCPUs: ptr.To(true),
}

existingResource, err := NewKubeVirt(hco)
Expect(err).ToNot(HaveOccurred())
By("KV CR should contain the AutoResourceLimitsGate feature gate", func() {
Expect(existingResource.Spec.Configuration.DeveloperConfiguration).NotTo(BeNil())
Expect(existingResource.Spec.Configuration.DeveloperConfiguration.FeatureGates).To(ContainElement(kvAlignCPUs))
})
})

It("should not add the AlignCPUs feature gate if AlignCPUs is false in HyperConverged CR", func() {
hco.Spec.FeatureGates = hcov1beta1.HyperConvergedFeatureGates{
AlignCPUs: ptr.To(false),
}

existingResource, err := NewKubeVirt(hco)
Expect(err).ToNot(HaveOccurred())
By("KV CR should not contain the AlignCPUs feature gate", func() {
Expect(existingResource.Spec.Configuration.DeveloperConfiguration).NotTo(BeNil())
Expect(existingResource.Spec.Configuration.DeveloperConfiguration.FeatureGates).ToNot(ContainElement(kvAlignCPUs))
})
})

It("should not add the AlignCPUs feature gate if AlignCPUs is not set in HyperConverged CR", func() {
hco.Spec.FeatureGates = hcov1beta1.HyperConvergedFeatureGates{
AlignCPUs: nil, //nolint SA1019
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please also check that the annotation does/doesn't exist in all 3 new tests.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.

Use the `AlignCPUs` enabler in order to control
KubeVirt's `AlignCPUs` feature gate.

Signed-off-by: Orel Misan <omisan@redhat.com>
When the FG is enabled ensure the Kubevirt CR will have:
1. The `AlignCPUs` feature gate enabled.
2. The `alpha.kubevirt.io/EmulatorThreadCompleteToEvenParity`
annotation set with a value of an empty string.

Following PR kubevirt/kubevirt#10872, it will enable 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.

When the FG is disabled, do the opposite:
1. Make sure the `AlignCPUs` feature gate is disabled.
2. Make sure the above annotation is not set.

The logic introduced in this commit is allowing users to freely
annotate the Kubevirt CR, but HCO will ensure the required
state of the above annotation.

Signed-off-by: Orel Misan <omisan@redhat.com>
@hco-bot
Copy link
Collaborator

hco-bot commented Dec 28, 2023

hco-e2e-upgrade-prev-operator-sdk-aws lane succeeded.
/override ci/prow/hco-e2e-upgrade-prev-operator-sdk-azure

@kubevirt-bot
Copy link
Contributor

@hco-bot: Overrode contexts on behalf of hco-bot: ci/prow/hco-e2e-upgrade-prev-operator-sdk-azure

In response to this:

hco-e2e-upgrade-prev-operator-sdk-aws lane succeeded.
/override ci/prow/hco-e2e-upgrade-prev-operator-sdk-azure

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.

@orelmisan
Copy link
Member Author

/retest

1 similar comment
@orelmisan
Copy link
Member Author

/retest

Copy link

openshift-ci bot commented Dec 29, 2023

@orelmisan: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name Commit Details Required Rerun command
ci/prow/hco-e2e-operator-sdk-aws 429e4dc link true /test hco-e2e-operator-sdk-aws
ci/prow/okd-hco-e2e-operator-sdk-aws 429e4dc link true /test okd-hco-e2e-operator-sdk-aws
ci/prow/hco-e2e-kv-smoke-azure 429e4dc link true /test hco-e2e-kv-smoke-azure
ci/prow/hco-e2e-upgrade-operator-sdk-azure 429e4dc link true /test hco-e2e-upgrade-operator-sdk-azure
ci/prow/hco-e2e-consecutive-operator-sdk-upgrades-aws 429e4dc link true /test hco-e2e-consecutive-operator-sdk-upgrades-aws
ci/prow/hco-e2e-upgrade-prev-operator-sdk-azure 429e4dc link true /test hco-e2e-upgrade-prev-operator-sdk-azure
ci/prow/hco-e2e-upgrade-operator-sdk-sno-azure 429e4dc link false /test hco-e2e-upgrade-operator-sdk-sno-azure
ci/prow/hco-e2e-operator-sdk-sno-azure 429e4dc link false /test hco-e2e-operator-sdk-sno-azure

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.

@orelmisan
Copy link
Member Author

@nunnatsa The two remaining Azure tests are still failing after multiple retries.
Could you please have a look?

@nunnatsa
Copy link
Collaborator

/override-bot

@nunnatsa
Copy link
Collaborator

hco-e2e-operator-sdk-sno-aws lane passed.
/override ci/prow/hco-e2e-operator-sdk-sno-azure

@kubevirt-bot
Copy link
Contributor

@nunnatsa: Overrode contexts on behalf of nunnatsa: ci/prow/hco-e2e-operator-sdk-sno-azure

In response to this:

hco-e2e-operator-sdk-sno-aws lane passed.
/override ci/prow/hco-e2e-operator-sdk-sno-azure

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.

@nunnatsa
Copy link
Collaborator

hco-e2e-upgrade-operator-sdk-sno-aws lane passed

/override
ci/prow/hco-e2e-upgrade-operator-sdk-sno-azure

@nunnatsa
Copy link
Collaborator

/override ci/prow/hco-e2e-upgrade-operator-sdk-sno-azure

@kubevirt-bot
Copy link
Contributor

@nunnatsa: Overrode contexts on behalf of nunnatsa: ci/prow/hco-e2e-upgrade-operator-sdk-sno-azure

In response to this:

/override ci/prow/hco-e2e-upgrade-operator-sdk-sno-azure

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.

@kubevirt-bot kubevirt-bot merged commit 4d4a6d9 into kubevirt:main Dec 29, 2023
36 checks passed
@orelmisan orelmisan deleted the aligncpus branch December 29, 2023 13:16
@orelmisan
Copy link
Member Author

Thank you @nunnatsa

RamLavi added a commit to RamLavi/kubevirt-dpdk-checkup that referenced this pull request Dec 31, 2023
Following the changes made on HCO [0], the SMT alignment fix is
configurable via HCO, thus making the fix enablelment more user
freindly.

[0] kubevirt/hyperconverged-cluster-operator#2695

Signed-off-by: Ram Lavi <ralavi@redhat.com>
RamLavi added a commit to RamLavi/kubevirt-dpdk-checkup that referenced this pull request Dec 31, 2023
Following the changes made on HCO [0], the SMT alignment fix is
configurable via HCO, thus making the fix enablelment more user
freindly.

[0] kubevirt/hyperconverged-cluster-operator#2695

Signed-off-by: Ram Lavi <ralavi@redhat.com>
RamLavi added a commit to RamLavi/kubevirt-dpdk-checkup that referenced this pull request Jan 1, 2024
Following the changes made on HCO [0], the SMT alignment fix is
configurable via HCO, thus making the fix enablelment more user
freindly.

[0] kubevirt/hyperconverged-cluster-operator#2695

Signed-off-by: Ram Lavi <ralavi@redhat.com>
orelmisan added a commit to orelmisan/openshift-docs that referenced this pull request Jan 1, 2024
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>
orelmisan added a commit to orelmisan/openshift-docs that referenced this pull request Jan 1, 2024
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>
orelmisan added a commit to orelmisan/openshift-docs that referenced this pull request Jan 1, 2024
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>
orelmisan added a commit to orelmisan/openshift-docs that referenced this pull request Jan 1, 2024
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>
orelmisan added a commit to orelmisan/openshift-docs that referenced this pull request Jan 1, 2024
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>
orelmisan added a commit to orelmisan/openshift-docs that referenced this pull request Jan 3, 2024
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>
orelmisan added a commit to orelmisan/openshift-docs that referenced this pull request Jan 5, 2024
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>
openshift-cherrypick-robot pushed a commit to openshift-cherrypick-robot/openshift-docs that referenced this pull request Jan 8, 2024
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>
kalexand-rh pushed a commit to kalexand-rh/openshift-docs that referenced this pull request Jan 16, 2024
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>
jab-rh pushed a commit to jab-rh/openshift-docs that referenced this pull request Mar 6, 2024
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>
subhtk pushed a commit to subhtk/openshift-docs that referenced this pull request Jul 16, 2024
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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
approved Indicates a PR has been approved by an approver from all required OWNERS files. dco-signoff: yes Indicates the PR's author has DCO signed all their commits. lgtm Indicates that a PR is ready to be merged. release-note Denotes a PR that will be considered when it comes time to generate release notes. size/L
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants