Skip to content

eunomia-bpf/schedcp

Repository files navigation

SchedCP - Automatically Optimize Linux Scheduler with MCP Server

WIP: We are building a benchmark for evaluating the optimizations for OS!

SchedCP is an experimental project that enables AI optimization of Linux kernel schedulers using the sched-ext framework. It provides e2e automatic scheduler selection/synthesis, workload profiling, and performance optimization without any human intervention or guidance.

Paper: SchedCP: Towards Agentic OS

The future is not just about letting AI write code for you; the AI agent should act as your system administrator, able to optimize anything for you automatically, without requiring any manual intervention!

It includes the following tools:

  • autotune - AI Agent-powered automatic OS optimization
  • schedcp - MCP server for scheduler management and generation

Demo

Start optimize any workload with AI by simply run:

autotune/target/release/autotune cc "<your workload command>"
# example for linux build
autotune/target/release/autotune cc "make -C workloads/linux-build-bench/linux clean -j && make -C workloads/linux-build-bench/linux -j" 
# example for schbench
autotune/target/release/autotune cc  workloads/basic/schbench/schbench

Allow LLM Agent to auto select and config the best scheduler:

document/schbench-optimize.gif

Allow LLM Agents to write new schedulers:

Features & design

  • Automatic workload profiling
  • Automatic scheduler selection based on workload characteristics
  • Performance tracking across different schedulers
  • Real-time scheduler management and generation

document/design.png

The current MCP tools include:

  • list_schedulers - Get detailed information about all available schedulers
  • run_scheduler - Start schedulers with custom configurations
  • stop_scheduler - Stop running scheduler instances
  • get_execution_status - Monitor scheduler performance and output
  • create_and_verify_scheduler - Create custom BPF schedulers from source code
  • system_monitor - Collect real-time CPU, memory, and scheduler metrics
  • workload - Manage workload profiles and execution history

Installation

Requirements

  • Linux kernel 6.12+ with sched-ext support
  • Rust toolchain

The major dependencies are the dependencies for the sched-ext framework. You can check the github.com/sched-ext/scx for more details.

You also need to install the deps for the workloads you want to optimize.

Build

# Clone with submodules
git clone https://github.com/eunomia-bpf/schedcp
cd schedcp
git submodule update --init --recursive scheduler/scx

# Build schedulers
cd scheduler && make && make install && cd ..
# Build autotune
cd autotune && cargo build --release && cd ..
# Build MCP server
cd mcp && cargo build --release && cd ..

Usage

You should run the claude-code on project root directory.

Autotune (Recommended)

# Set sudo password
export SCHEDCP_SUDO_PASSWORD="your_password"

# Optimize any workload
./autotune/target/release/autotune cc "<your workload command>"

MCP Server

check the .mcp.json for more details. You can just open the claude-code on the

CLI Tool

export SCHEDCP_SUDO_PASSWORD="your_password"

# List schedulers
./mcp/target/release/schedcp-cli list

# Run a scheduler
./mcp/target/release/schedcp-cli run scx_rusty --sudo

# Check status
./mcp/target/release/schedcp-cli status

Artifact from Paper

Artifact for reproducing results from "Towards Agentic OS: An LLM Agent Framework for Linux Schedulers" (arXiv:2509.01245).

Evaluation Workloads

1. Linux Kernel Build

2. schbench

3. Batch Workloads

Related Projects

License

See LICENSE for details.

About

MCP Server for Linux Scheduler Management and Auto optimization

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project

  •  
  •  

Packages

 
 
 

Contributors 7