arceos
arceos copied to clipboard
Loadbalance pr3
New feature(s):
- Split the run_queue into one queue per hart.
- Add loadbalance crate (with some modifications in scheduler crate) with a Zircon style implementation.
- Support automatically choice of hart to run for each new tasks.
- Support thread steal mechanism between different harts.
- Add new task called unbalance. It has many unbalance payloads to run, simulating real world parallel apps like SpMV. Achievement(s):
- The thread steal mechanism speed up by 10% in task unbalance. Moreover, current version is slightly faster than single run_queue even with only 4 cores in unbalance task.
- The high concurrence of I/O thread wake up simulation obtains more than 50% time reduction on SMP=8 ACCEL=y compared to single run queue
Is this PR still active? Please fix conflicts.