add option to use a busy waiting within the idle loop#1243
Merged
mkroening merged 5 commits intohermit-os:mainfrom Jun 6, 2024
Merged
add option to use a busy waiting within the idle loop#1243mkroening merged 5 commits intohermit-os:mainfrom
mkroening merged 5 commits intohermit-os:mainfrom
Conversation
e9bceb9 to
80c8a17
Compare
mkroening
approved these changes
Jun 5, 2024
Member
mkroening
left a comment
There was a problem hiding this comment.
Looks good to me aside from one nit. I'll run CI on the in-between commits too, to make sure there's no breakage.
- avoid using the halt instruction - CPU waits until another CPU change the ready queue - doesn't require wakeup IPIs
=> using busy waiting loop
…ate` Signed-off-by: Martin Kröning <martin.kroening@eonerc.rwth-aachen.de>
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.
Instead of the
hltinstruction, the idle loop use thepauseinstruction. => lower latency to wake up the core, but higher energy consumption.In addition, this PR support
monitor/mwaitinstructions. In this, the kernel hasn't to send an IPI to wakeup a core. The second optimization is that the kernels sends only an IPI, if the core is halted.