scx_lavd: Optimize CPU selection in pick_idle_cpu#3229
Open
Dongwqiang wants to merge 1 commit intosched-ext:mainfrom
Open
scx_lavd: Optimize CPU selection in pick_idle_cpu#3229Dongwqiang wants to merge 1 commit intosched-ext:mainfrom
Dongwqiang wants to merge 1 commit intosched-ext:mainfrom
Conversation
Optimize the CPU selection algorithm in pick_idle_cpu() to improve performance in highly loaded systems with multiple compute domains. The current implementation iterates through all neighboring domains without considering distance or early exit conditions, which can lead to unnecessary iterations when no idle cores are available. Changes: 1. Add tracking of stealer domains found at each distance level 2. Skip domains without idle cores early (nr_idle_cores == 0) 3. Add early exit when stealer domains are found but no idle cores are available in closer domains 4. Add optimization comments explaining the improvements These changes reduce the search time in the critical path while maintaining the same task migration behavior and load balancing characteristics. Signed-off-by: Dong Wanqiang <dongwanqiang@xiaomi.com>
Contributor
|
@Dongwqiang -- Thanks for submitting the patch. It seems like there is a compilation error on the CI. Could you please check? |
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
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.
Optimize the CPU selection algorithm in pick_idle_cpu() to improve performance in highly loaded systems with multiple compute domains.
The current implementation iterates through all neighboring domains without considering distance or early exit conditions, which can lead to unnecessary iterations when no idle cores are available.
Changes:
These changes reduce the search time in the critical path while maintaining the same task migration behavior and load balancing characteristics.