Skip to content
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

Implement MuQSS scheduling algorithm #48

Open
wants to merge 43 commits into
base: master
Choose a base branch
from
Open

Implement MuQSS scheduling algorithm #48

wants to merge 43 commits into from

Conversation

bSchnepp
Copy link
Owner

This patch (roughly) implements the MuQSS scheduling algorithm, allowing for a more fair way to schedule between multiple processes.

Some things aren't quite done yet (TryAcquire for each local runqueue instead of an outright spinlock acquire), but this is much safer (and cleaner) than the prior round robin method.

@bSchnepp bSchnepp self-assigned this Dec 28, 2022
@bSchnepp
Copy link
Owner Author

Seems that this doesn't quite work for SMP just yet. Some more work needs to be done.
Is there a race somewhere? There doesn't seem to be any obvious places where locks aren't being managed as expected.

@bSchnepp
Copy link
Owner Author

bSchnepp commented Jan 1, 2023

It looks like there's something still wrong with context switching (eventually registers get corrupted on a context switch?). This maybe can be fixed by just progressing through more changes for the scheduler, which when complete this can be safely merged in.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant