EB

eunomia-bpf/schedcp

Developer tools
113 stars 0 forks Quality 80 Trend 80

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

Overview

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

README

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 ""
# 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:

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

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 ..

Documentation

User Guides

  • USAGE_GUIDE.md - Complete guide on how to use schedulers

    • Installation and setup
    • Using schedulers with CLI, MCP server, and autotune
    • Understanding scheduler selection
    • Troubleshooting
  • PROJECT_STRUCTURE.md - Detailed project organization

    • Component overview and responsibilities
    • Directory structure and file locations
    • Data flow and integration points
    • Build system architecture
  • AI_AGENTS.md - AI agent implementation

    • How observation, planning, execution, and learning agents work
    • MCP tools and agent capabilities
    • Example optimization workflows
    • Integration with Claude and other AI systems

Design Documents

Quick Start

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

# Set sudo password
export SCHEDCP_SUDO_PASSWORD="your_password"

# Optimize any workload
./autotune/target/release/autotune cc ""

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

# Monitor system metrics
./mcp/target/release/schedcp-cli monitor

For detailed usage instructions, see USAGE_GUIDE.md.

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

License

See LICENSE for details.

View this README on GitHub

Install

This server does not publish a one-line install command.

Open the repository installation guide