An Awesome & Curated List of Schedulers for Linux.
- CFS: Completely Fair Scheduler - The default process scheduler used in the Linux kernel since version 2.6.23. It is designed to provide fairness and good overall system performance, especially in multi-core systems, with it's "fairness" mechanism.
- EEVDF: Earliest Eligible Virtual Dealine First - Designed to run the processes with the earliest virtual deadline first, for providing low-latency.
- BORE: Burst-Oriented Response Enhancer - Enhanced version of CFS and EEVDF, designed to provide high performance while delivering resilient responsiveness to user input under as versatile load scenario as possible.
- Baby - Designed to be very basic and lightweight without compromising performance by disabling a lot of features. Great base ground CPU scheduler on Linux for educational purpose.
- TT: Task Type - Designed to detect tasks types based on their behaviors and control the scheduling based on their types, resulting in to have more control over the task to run next on the CPU.
- MuQSS: Multiple Queue Skiplist Scheduler - Designed to improve system responsiveness and reduce latency, especially in desktop and interactive workloads.
- BFS: Brain Fuck Scheduler - Designed to be simple and minimalistic, it is an experimental process scheduler designed for low-latency and improved desktop interactivity.
- CacULE - CFS patchset that is based on interactivity score mechanism which is inspired by the ULE scheduler (FreeBSD scheduler), for enhancing system responsiveness/latency. Performs better with it's own experimental load balancer called RDB (Response Driven Balancer).
- Cachy - Earlier generation/version of CacULE.
- PDS-MQ: Priority and Deadline based Skiplist multiple queue - Designed with VRQ (Variable Run Queue) support, derived from BFS: Brain Fuck Scheduler.
- BMQ: Bit Map Queue - Design based on existing PDS development experience and inspired by the scheduler found in Zircon by Google.
- ECHO: Enhanced CPU Handling Orchestrator - A CPU processes scheduler patch for the Linux kernel. It features highly multitasking handling with a maximum 35us quota, shared quotas for tasks, a minimum slice for running tasks, estimation of tasks using Shortest Remaining Task Next (SRTF), and a load balancer similar to the TT scheduler.
- BFQ: Budget Fair Queueing - Designed to improve storage I/O performance, especially for block devices like hard drives and solid-state drives (SSDs), with ability to provide low-latency and fairness for I/O operations.
- Kyber - Introduced in version 4.12. It is designed to improve storage I/O performance, especially for modern non-rotational storage devices like solid-state drives (SSDs) and eMMC storage, with low overhead.
- mq-deadline - Adaptation of the legacy deadline scheduler, for the blk-mq scheduling framework, it is designed to group queued I/O requests into batches.
- deadline - Introduced in version 2.4.10 and is designed to optimize I/O performance for both rotational (e.g., traditional hard disk drives) and non-rotational (e.g., solid-state drives) storage devices, focusing on meeting I/O request deadlines.
- noop: No-operation - Designed to be a simple and minimalistic scheduler that works effectively with certain types of storage devices, particularly with modern non-rotational storage media like solid-state drives (SSDs). It's very minimalistic and lacks scheduling overhead.
- CFQ: Completely Fair Queueing - Designed to provide fairness and good overall system performance, especially for rotational storage devices like traditional hard disk drives (HDDs), focusing on fairness among processes accessing storage devices.
- sched-ext - A Linux kernel feature which enables implementing kernel thread schedulers in BPF and dynamically loading them.
- Project C - A project to provide BMQ and PDS-mq cpu scheduler in one single patch set.
- CK Kolivas' Patches Web Directory - CK's web directory providing MuQSS, BFS and other patchsets.
- Linux Baby - Linux kernel with baby patchset applied.
- Linux CachyOS - Linux kernel with various patchsets applied including bore, eevdf, TT, BMQ, PDS, CacULE+RDB and CFS.
- Xanmod Kernel - Custom linux kernel built to provide a stable, smooth and solid system experience.
- linux-pf - Maintained by a kernel engineer (post-factum), contains patchsets not merged into the official kernel mainline.
- Zen Kernel - Result of a collaborative effort of kernel hackers to provide the best Linux kernel possible for everyday systems.
- Liquorix Kernel - An enthusiast Linux kernel designed for uncompromised responsiveness in interactive systems, enabling low latency compute in A/V production, and reduced frame time deviations in games.
- Linux-TKG - A build system to automatically download, patch and compile the Linux Kernel from the official Linux git repository, with a selection of patches aiming for better desktop/gaming experience.
- Kernel patches by Sir lucjan - Curated custom Linux kernel patches.
- graysky2 kernel compiler patches for additional CPUs - Kernel patches enables compiler optimizations for additional CPUs.
- Frogging Family Community Kernel Patches
- clearlinux-pkgs/linux - Linux kernel patches by clear linux optimized for Intel systems.
- linux-nitrous - Linux kernel with patchsets optimized for Intel Skylake and newer systems.
- kpatch - A Linux dynamic kernel patching infrastructure which allows you to patch a running kernel without rebooting or restarting any processes.
- ksplice - A set of tools designed to create binary patches from standard kernel patches, allowing updates to be applied to a running Linux kernel without requiring a reboot.
- hamadmarri/benchmarks - Curated list of Linux CPU Scheduler Benchmarks and Feedback.
- The Linux Userspace API Group's kernel features list - A collection of ideas for new kernel features by UAPI Group.
- autokernel - Autokernel is a tool for managing your kernel configuration that guarantees semantic correctness.
- kmon - Linux Kernel Manager and Activity Monitor.
- kernel-hardening-checker (formerly kconfig-hardened-check) - A tool for checking the security hardening options of the Linux kernel.
- dropwatch - User space utility to interface to kernel dropwatch facility.
- out-of-tree - out-of-tree is the kernel {module, exploit} development tool.