Modernizing RedoxOS Scheduling: EEVDF & Performance Analysis#
Personal Information#
- Name: Akshit Gaur
- Matrix/GitLab: akshitgaur2005
- Website: himwant.org
1. Project Goals#
The goal of this project is to modernize the Redox OS process scheduling subsystem and establish a rigorous performance testing baseline. This involves three key objectives:
- Benchmarking: Establishing a “Source of Truth” for system performance to measure future improvements (specifically for Direct Context Switching).
- Simulation & Correctness: Developing a Scheduler Test Harness to verify scheduling logic in isolation under heavy load (1-1024 cores).
- Kernel Scheduling: Implementing a Priority-Based Scheduler followed by the EEVDF (Earliest Eligible Virtual Deadline First) algorithm to replace the legacy Round-Robin one.
2. The Problem#
- Performance Visibility: Optimizing Redox is difficult because we lack a standardized suite to isolate/measure syscall latencies and context-switch overheads.
- Testing Complexity: Testing scheduler changes currently requires full system recompilation and booting, making iteration slow and regression testing difficult.
- Scheduling Latency: The current Round-Robin scheduler does not handle interactive workloads or “lag” as effectively as modern algorithms like EEVDF.
3. Implementation Roadmap & Milestones#
Phase 1: Foundation & Prototype (Total: $1,800) (Target: Feb 15 - March 31)#
Milestone 1.1: Benchmarking & Profiling ($500) (Target: Feb 28)#
I will build/port a benchmarking suite tailored for Redox.
- Deliverable: Porting tools (inspired by
lmbench/UnixBench) and writing test harness tools required by4lDO2for testing Direct Context Switching. - Status: Port of
sysbenchis already complete forx86_64andaarch64.
Milestone 1.2: Priority-Ranked Scheduler ($800) (Target: March 20)#
I will implement a simple priority-based scheduler integrated into Redox.
- Mechanism: Nice value determines priority; context switch selects highest priority task.
- Goal: Demonstrate basic operation and correctness of the scheduling API changes.
Milestone 1.3: Isolated Test Harness ($500) (Target: March 31)#
I will implement a non-Redox program to test the scheduler algorithms in isolation.
- Scope: Simulation of tasks (continuous and blocked) under heavy load.
- Scale: Verifying correctness on 1 to 1024 simulated cores.
Phase 2: EEVDF Implementation & Tuning (Total: $3,700) (Target: April 1 - August 31)#
Milestone 2.1: EEVDF Implementation ($2,000) (Target: May 30)#
I will implement the EEVDF algorithm within the kernel.
- Logic: Replacing legacy Round Robin with the modern EEVDF.
- Deliverable: A functioning EEVDF scheduler demonstrating basic operation.
Milestone 2.2: Optimization ($700) (Target: June 30)#
Improve the scheduler performance to match or exceed the current scheduler’s raw throughput using the Test Harness.
Milestone 2.3: Analysis & Tuning ($500) (Target: July 31)#
Analyze and tune the performance of the system with EEVDF, applying lessons from Linux and using the Benchmarking suite (Phase 1) to validate gains.
Milestone 2.4: Documentation ($500) (Target: August 31)#
Produce a comprehensive report/news post covering an overview of EEVDF scheduling theory (referencing the original paper), the Redox implementation, parameter tuning results, and how-to instructions for users to configure scheduling priorities themselves.
Note: The end date for final claims for payment will be October 31, 2026.
4. About Me#
I am a Systems Engineering undergraduate (JNU) focused on Operating Systems, Rust, and ML Infrastructure.
- Redox Experience: I have already contributed multiple PRs to the Redox kernel, base, relibc and recipes (including
sysbenchport). - Relevant Skills: Rust, C, OS Internals (xv6 analysis), RISC-V Assembly.
Note: All code submitted will be written by hand without the use of AI code generation tools.