# Modernizing RedoxOS Scheduling: EEVDF & Performance Analysis ## Personal Information - **Name:** Akshit Gaur - **Matrix/GitLab:** akshitgaur2005 - **Website:** [himwant.org](https://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: 1. **Benchmarking:** Establishing a “Source of Truth” for system performance to measure future improvements (specifically for Direct Context Switching). 2. **Simulation & Correctness:** Developing a **Scheduler Test Harness** to verify scheduling logic in isolation under heavy load (1-1024 cores). 3. **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 by `4lDO2` for testing Direct Context Switching. - **Status:** Port of `sysbench` is already complete for `x86_64` and `aarch64`. ### 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 `sysbench` port). - **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.