-
Notifications
You must be signed in to change notification settings - Fork 2.3k
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
Fix incorrect CPU topology on single NUMA and multi socket platform. #2799
Fix incorrect CPU topology on single NUMA and multi socket platform. #2799
Conversation
Skipping CI for Draft Pull Request. |
/ok-to-test |
It seems physical package id is missing, |
Signed-off-by: Paweł Szulik <pawel.szulik@intel.com>
2976b22
to
76514b8
Compare
This PR was draft at this time. Now it's ready for review. |
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.
I have to un-LGTM it: it may cause yet another set of issues with kubelet (see comments in the linked issue).
Unfortunately, issues are already there. This PR fixes only one issue, the wrong threads to CPU matching. |
I know but CPU manager must not be affected - keep in mind that it is enabled for all guaranteed pods by default. |
@Creatone We tested the fix and it can detect cpu topologies correctly. By the way, could you backport the fix to 0.38.x as well? |
Just clarify: when I said "We tested the fix and it can detect cpu topologies correctly", I meant it fixed the specific issue "wrong threads to CPU matching". |
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.
Thanks @Creatone for the fix. Can you please explain what the issue was / how this fixes it, I'm not super clear? Is the issue due to missing check of core.SocketID == physicalPackageID
?
@bobbypage Imagine you have a platform with one NUMA node and 4 sockets with one CPU in. In this case, every CPU has core_id = 0, so cAdvisor was putting them in the same core in topology.
And this is wrong. We need to differentiate these CPUs. It's needed to consist of
|
@Creatone @bobbypage : Is the review ok ? If review is done, it needs to be merged. |
got it, thanks @Creatone for the fix. LGTM. |
Fixes #2798
Signed-off-by: Paweł Szulik pawel.szulik@intel.com