-
Notifications
You must be signed in to change notification settings - Fork 31
balloons: extend composite balloons with a kind of load balancing #617
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
Merged
klihub
merged 4 commits into
containers:main
from
askervin:5f5-balloons-component-alloc
Jan 20, 2026
Merged
balloons: extend composite balloons with a kind of load balancing #617
klihub
merged 4 commits into
containers:main
from
askervin:5f5-balloons-component-alloc
Jan 20, 2026
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
4c3b72a to
b6c10d6
Compare
kad
approved these changes
Jan 14, 2026
Collaborator
kad
left a comment
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.
Generally LGTM, just few small questions.
b6c10d6 to
1fd5f3a
Compare
When a new balloon of a composite balloon type is created, componentCreation specifies a strategy for choosing which components of the composite balloon that will be used for allocating CPUs for it. The default behavior is not changed: if componentCreation is unspecified or set to "all", one balloon from every composite type is instantiated, and allocate an equal number of CPUs is allocated through each of them for the composite balloon. A new component creation strategy is introduced: "balance-balloons" will use only one component for CPU allocation: the first component whose balloon type that has the minimum number of balloon instances. This enables balancing containers into different balloon types, for instance, half of the containers will be close to one device while the other half another device in the system. This is achieved by defining two normal balloon types, each close to one device, and a composite balloon type with these normal balloon types as components, using "balance-balloons" as componentCreation strategy, and preferring creation of a new composite balloon for every container. Signed-off-by: Antti Kervinen <antti.kervinen@intel.com>
590a0f6 to
9dd58f2
Compare
Signed-off-by: Antti Kervinen <antti.kervinen@intel.com>
Signed-off-by: Antti Kervinen <antti.kervinen@intel.com>
Signed-off-by: Antti Kervinen <antti.kervinen@intel.com>
9dd58f2 to
fb90006
Compare
kad
approved these changes
Jan 19, 2026
Collaborator
kad
left a comment
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
klihub
approved these changes
Jan 20, 2026
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Composite balloons are balloons that get their CPUs by a union of the CPUs of their component balloons. Composite balloons are created from balloon types that have one or more
components(balloon types).Until now, when a new composite balloon is created, new balloon of each component type has been created, too. This enabled creating balloons that constist of an equal number of CPUs from every NUMA node. However if a system has two or more sockets, one may want to allocate an equal number of CPUs from every NUMA node from socket 0 for one container, and from socket 1 to another container, but without enforcing either of the sockets in the balloons annotation. Or more general, one may want to balance of similar containers across multiple balloon types. The purpose of this PR is to enable this kind of balancing.
When a new balloon of a composite balloon type is created,
componentCreationspecifies a strategy for choosing which components of the composite balloon that will be created and thus used for allocating CPUs for it. The default behavior is not changed: if componentCreation is unspecified or set to "all", one balloon from every composite type gets instantiated, and an equal number of CPUs is allocated through each component.One new component creation strategy is introduced: "first-min-balloons". It will use only one of the components for CPU allocation: the first component whose balloon type that has the minimum number of balloon instances alive.