-
-
Notifications
You must be signed in to change notification settings - Fork 175
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Move scheduling functionality into
task
; add Scheduler
policy tra…
…it (#1035) * Add the `Scheduler` trait, which represents a scheduler policy. * By default, there is one instance of a `Scheduler` policy per CPU. * Support dynamically registering and switching between different scheduler policies on a per-CPU basis. * Because this is now defined in the `task` crate instead of in the `scheduler` crate, the `task` crate can now access all functionality provided by a scheduler policy, which allows for custom actions like setting priority or removing/adding blocked/unblocked tasks to/from a runqueue. * Combine `runqueue_*` crates with their respective and `scheduler_*` crates, which is an improved design because external crates should not be able to view or modify a scheduler policy's internal runqueue contents. * This design makes sense, and also prevents issues like #1000. * Modify most applications that access runqueues via the old `runqueue_*` crate APIs to go through the new `Scheduler` API instead. ---------- Signed-off-by: Klimenty Tsoutsman <[email protected]> Co-authored-by: Kevin Boos <[email protected]>
- Loading branch information
Showing
45 changed files
with
776 additions
and
1,717 deletions.
There are no files selected for viewing
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
This file contains 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
This file contains 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
This file contains 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
This file contains 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
This file contains 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
This file contains 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
This file contains 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
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -2,21 +2,19 @@ | |
name = "rq" | ||
version = "0.1.0" | ||
authors = ["Christine Wang <[email protected]>"] | ||
edition = "2021" | ||
|
||
[dependencies] | ||
getopts = "0.2.21" | ||
|
||
[dependencies.app_io] | ||
path = "../../kernel/app_io" | ||
|
||
[dependencies.apic] | ||
path = "../../kernel/apic" | ||
[dependencies.cpu] | ||
path = "../../kernel/cpu" | ||
|
||
[dependencies.task] | ||
path = "../../kernel/task" | ||
|
||
[dependencies.runqueue] | ||
path = "../../kernel/runqueue" | ||
|
||
# [dependencies.application_main_fn] | ||
# path = "../../compiler_plugins" |
Oops, something went wrong.