You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I think I'm going to start working on this now. I ran Instruments.app on word-count.rs, and 75% of the time is spent on locking, most of which is in the scheduler lock.
The design I'm going to tentatively adopt is to merge rust_scheduler and rust_task_thread, so we create multiple schedulers and each one has its own thread (this is really similar to the old rust_domain model...). For now, I'll make it so that when you create a task, the kernel picks a random scheduler to create it on, and tasks just stay on the same scheduler for their whole lifetime. We can add load balancing (probably in the form of work stealing) later.
Tasks are spawned on a random thread. Currently they stay there, but
we should add task migration and load balancing in the future. This
should drammatically improve our task performance benchmarks.
We should use per-thread task lists. This means there will be a lot less contention on the scheduler lock, but it also makes load balancing harder.
The text was updated successfully, but these errors were encountered: