-
Notifications
You must be signed in to change notification settings - Fork 188
Simulate numa nodes #4428
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
base: main
Are you sure you want to change the base?
Simulate numa nodes #4428
Conversation
|
Skipping CI for Draft Pull Request. |
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.
Code Review
This pull request introduces the capability to simulate NUMA nodes in QEMU for external tests. The changes involve adding a NumaNodes option and plumbing it through various layers of the test harness and platform configuration. The core logic for generating QEMU arguments for NUMA is in mantle/platform/qemu.go.
I've identified a couple of issues in the implementation within mantle/platform/qemu.go that could lead to incorrect resource allocation for the simulated NUMA nodes. My review includes suggestions to fix these bugs.
| Timeout time.Duration // the duration for which a test will be allowed to run | ||
| RequiredTag string // if specified, test is filtered by default unless tag is provided -- defaults to none | ||
| Description string // test description | ||
| NumaNodes int // Number of numa nodes to simulate |
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.
Should we make this an on/off flag where we hardcode 2 NUMA nodes as I don't think we'll test with more than that and maybe that should simplify the code a bit?
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 think this remove the for loop in baseNumaQemuArgs function, but most of the checks would still be quite similar.
Would it be useful to also allow the numaNodes flag with the cosa run command for debugging? If so, allowing an integer may be nice.
If making it a boolean would keep it simpler, and the above is not worth implementing, then I am happy to change it to use a boolean flag.
Add an option for external tests to be executed by a machine with multiple numa nodes.