this string has no description
RSoC-Proposal.md edited
92 lines 4.2 kB view raw view code

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:

  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.