Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

awesome-linux-schedulers

An Awesome & Curated List of Schedulers for Linux
https://github.com/TanvirOnGH/awesome-linux-schedulers

Last synced: about 3 hours ago
JSON representation

  • Resources

    • Project C - A project to provide BMQ and PDS-mq cpu scheduler in one single patch set.
    • 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.
    • linux-pf - Maintained by a kernel engineer ([post-factum](https://pfkernel.natalenko.name/)), 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.
    • Kernel patches by Sir lucjan - Curated custom Linux kernel patches.
    • clearlinux-pkgs/linux - Linux kernel patches by [clear linux](https://clearlinux.org) optimized for Intel systems.
    • linux-nitrous - Linux kernel with patchsets optimized for Intel Skylake and newer systems.
    • CK Kolivas' Patches Web Directory - CK's web directory providing MuQSS, BFS and other patchsets.
  • CPU Schedulers

    • Built-in

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

      • 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.
      • Cachy - Earlier generation/version of [CacULE](https://github.com/hamadmarri/cacule-cpu-scheduler).
      • PDS-MQ: Priority and Deadline based Skiplist multiple queue - Designed with VRQ (Variable Run Queue) support, derived from [BFS: Brain Fuck Scheduler](https://en.wikipedia.org/wiki/Brain_Fuck_Scheduler).
      • BMQ: Bit Map Queue - Design based on existing [PDS](https://www.phoronix.com/news/PDS-MQ-Linux-4.17) development experience and inspired by the scheduler found in [Zircon](https://fuchsia.dev/fuchsia-src/concepts/kernel) by Google.
  • I/O Schedulers

    • Multiqueue

      • 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](https://en.wikipedia.org/wiki/Deadline_scheduler) scheduler, for the [blk-mq](https://docs.kernel.org/block/blk-mq.html) scheduling framework, it is designed to group queued I/O requests into batches.
    • Non-multiqueue

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