-
Notifications
You must be signed in to change notification settings - Fork 1.1k
[release-1.34] Make irq-load-balancing.crio.io configurable per CPU #9564
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
[release-1.34] Make irq-load-balancing.crio.io configurable per CPU #9564
Conversation
The Generator struct contains an internal envMap field that caches environment variable positions for performance optimization when adding environment variables. This map is critical for the proper operation of the AddProcessEnv() and AddMultipleProcessEnv() methods, which rely on it to efficiently detect and update duplicate environment variables. The previous code directly instantiated a Generator struct literal, which leaves the envMap field as nil (the zero value for maps in Go). When methods like AddProcessEnv() are subsequently called, they attempt to access g.envMap[key], which will work on a nil map for reads but creates a bug: the code path at line 543 tries to assign to g.envMap, which will panic with "assignment to entry in nil map". While the current code path in createContainerPlatform() doesn't immediately call methods that would trigger this panic, the bug represents a latent defect that could cause runtime panics if future changes call environment variable manipulation methods on this Generator instance. Signed-off-by: Andreas Karis <[email protected]>
Add support for the "housekeeping" annotation value in the IRQ load balancing feature. When irq-load-balancing.crio.io is set to "housekeeping", IRQ interrupts are preserved on the first CPU and its thread siblings, while being disabled on the remaining container CPUs. The implementation also injects environment variable HOUSEKEEPING_CPUS into containers. Signed-off-by: Andreas Karis <[email protected]>
Add a nil pointer check in isContainerRequestWholeCPU, just for safety measures, as the cSpec or several of the fields might be nil. Signed-off-by: Andreas Karis <[email protected]>
|
@cri-o/cri-o-maintainers PTAL |
|
/lgtm |
|
@MarSik: changing LGTM is restricted to collaborators DetailsIn 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-sigs/prow repository. |
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## release-1.34 #9564 +/- ##
================================================
- Coverage 67.03% 64.19% -2.84%
================================================
Files 202 202
Lines 28085 28164 +79
================================================
- Hits 18827 18081 -746
- Misses 7683 8495 +812
- Partials 1575 1588 +13 🚀 New features to boost your workflow:
|
|
/retest |
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: haircommander, openshift-cherrypick-robot The full list of commands accepted by this bot can be found here. The pull request process is described here DetailsNeeds approval from an approver in each of these files:
Approvers can indicate their approval by writing |
|
/retest |
1926694
into
cri-o:release-1.34
This is an automated cherry-pick of #9223
/assign haircommander