Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
MuQSS CPU scheduler v0.15 for linux-4.9(Con Kolivas)
View unanswered posts
View posts from last 24 hours

Reply to topic    Gentoo Forums Forum Index Kernel & Hardware
View previous topic :: View next topic  
Author Message

Joined: 15 Aug 2002
Posts: 3345
Location: Gainesville, Florida

PostPosted: Mon Dec 12, 2016 7:47 pm    Post subject: MuQSS CPU scheduler v0.15 for linux-4.9(Con Kolivas) Reply with quote

For those interested, this applies cleanly to 4.9.0-gentoo-sources. I Thought BFQ would likely take several weeks to get into 4.9.x (usually the time for most new versions), and saw this.
I used the Kolivas "ck" patches (and the later BFS versions) for desktops years ago, and liked them, so figured this was worth a try.
 amd64 wrc # cd /usr/src/linux-4.9.0-gentoo
amd64 linux-4.9.0-gentoo # patch -p1 < 4.9-sched-MuQSS_150.patch
patching file Documentation/scheduler/sched-BFS.txt
patching file Documentation/scheduler/sched-MuQSS.txt
patching file Documentation/sysctl/kernel.txt
patching file arch/powerpc/platforms/cell/spufs/sched.c
patching file arch/x86/Kconfig
patching file fs/proc/base.c
patching file include/linux/init_task.h
patching file include/linux/ioprio.h
patching file include/linux/sched.h
patching file include/linux/sched/prio.h
patching file include/linux/skip_list.h
patching file include/uapi/linux/sched.h
patching file init/Kconfig
patching file init/main.c
patching file kernel/Makefile
patching file kernel/delayacct.c
patching file kernel/exit.c
patching file kernel/kthread.c
patching file kernel/sched/Makefile
patching file kernel/sched/MuQSS.c
patching file kernel/sched/MuQSS.h
patching file kernel/sched/cpufreq.c
patching file kernel/sched/cpufreq_schedutil.c
patching file kernel/sched/cputime.c
patching file kernel/sched/idle.c
patching file kernel/sched/sched.h
patching file kernel/sched/stats.c
patching file kernel/skip_list.c
patching file kernel/sysctl.c
Hunk #2 succeeded at 288 (offset 18 lines).
Hunk #3 succeeded at 305 (offset 18 lines).
Hunk #4 succeeded at 474 (offset 18 lines).
Hunk #5 succeeded at 1039 (offset 18 lines).
patching file kernel/time/clockevents.c
patching file kernel/time/posix-cpu-timers.c
patching file kernel/time/timer.c
patching file kernel/trace/trace_selftest.c
amd64 linux-4.9.0-gentoo #

MuQSS CPU scheduler v0.15 for linux-4.9
Announcing an updated stable version of the Multiple Queue Skiplist Scheduler,
the successor to BFS, version 0.150 for linux-4.9.
Patch summary:
The MuQSS (Multiple Queue Skiplist Scheduler - pronounced mux) v0.150 by Con Kolivas.

This is a multiple runqueue skiplist evolution of the Brain Fuck Scheduler,
designed to provide excellent latency, throughput and scalability to any
number of CPUs, with primary emphasis on latency for interactivity and

A multiple runqueue strict fairness earliest effective virtual deadline first

Runqueue insertion is O(log(n)), lookup is O(1), removal is amortised O(1).

Interactive mode is enabled by default but can be disabled for improved
throughput at the expense of deterministic low latency.

echo 0 > /proc/sys/kernel/interactive

Features SCHED_IDLEPRIO and SCHED_ISO scheduling policies as well.
You do NOT need to use these policies for good performance, they are purely
optional for even better performance in extreme conditions.

To run something idleprio, use schedtool like so: schedtool -D -e make -j4

To run something isoprio, use schedtool like so: schedtool -I -e amarok

Includes configurable SMT-nice support for better nice level and scheduling
policy support across SMT (aka hyperthread) sibling CPUs.

Includes accurate sub-tick accounting of tasks so userspace reported
cpu usage may be very different if you have very short lived tasks.

From: Con Kolivas <> Date: Sat, 10 Dec 2016 13:37:55 +1100
Subject: [PATCH 01/19] Multiple Queue Skiplist Scheduler version 0.15

Documentation/scheduler/sched-BFS.txt | 351 ++
Documentation/scheduler/sched-MuQSS.txt | 345 ++
Documentation/sysctl/kernel.txt | 37 +
arch/powerpc/platforms/cell/spufs/sched.c | 5 -
arch/x86/Kconfig | 18 +-
fs/proc/base.c | 2 +-
include/linux/init_task.h | 76 +-
include/linux/ioprio.h | 2 +
include/linux/sched.h | 69 +-
include/linux/sched/prio.h | 12 +
include/linux/skip_list.h | 33 +
include/uapi/linux/sched.h | 9 +-
init/Kconfig | 25 +-
init/main.c | 3 +-
kernel/Makefile | 2 +-
kernel/delayacct.c | 2 +-
kernel/exit.c | 2 +-
kernel/kthread.c | 30 +-
kernel/sched/Makefile | 13 +-
kernel/sched/MuQSS.c | 8033 ++++++++++++++++++++++++++++
kernel/sched/MuQSS.h | 348 ++
kernel/sched/cpufreq.c | 4 +
kernel/sched/cpufreq_schedutil.c | 16 +
kernel/sched/cputime.c | 27 +-
kernel/sched/idle.c | 14 +-
kernel/sched/sched.h | 25 +
kernel/sched/stats.c | 4 +
kernel/skip_list.c | 148 +
kernel/sysctl.c | 52 +-
kernel/time/clockevents.c | 5 +
kernel/time/posix-cpu-timers.c | 10 +-
kernel/time/timer.c | 7 +-
kernel/trace/trace_selftest.c | 5 +
33 files changed, 9670 insertions(+), 64 deletions(-)
create mode 100644 Documentation/scheduler/sched-BFS.txt
create mode 100644 Documentation/scheduler/sched-MuQSS.txt
create mode 100644 include/linux/skip_list.h
create mode 100644 kernel/sched/MuQSS.c
create mode 100644 kernel/sched/MuQSS.h
create mode 100644 kernel/skip_list.c

Main box- AsRock x370 Gaming K4
Ryzen 7 3700x, 3.6GHz, 16GB GSkill Flare DDR4 3200mhz
Samsung SATA 1000GB, Radeon HD R7 350 2GB DDR5
Gentoo ~amd64 plasma, glibc-2.30-r6, gcc-9.3.0 kernel-5.5.11-gentoo USE=experimental
Back to top
View user's profile Send private message

Joined: 20 Dec 2005
Posts: 6111
Location: Vienna, Austria; Germany; hello world :)

PostPosted: Mon Dec 26, 2016 6:56 pm    Post subject: Reply with quote

He uses git now, so it might be easier and convenient to upgrade to newer Kernel versions with that (e.g. git rebase) :)

Hardcore Gentoo Linux user since 2004 :D
Back to top
View user's profile Send private message

Joined: 28 Nov 2006
Posts: 495
Location: Brazil

PostPosted: Mon Dec 26, 2016 8:38 pm    Post subject: Reply with quote

Got a lot of freezes with ck, unfortunately. Switching to vanilla solved it. Maybe because of closed Nvidia drivers.
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Kernel & Hardware All times are GMT
Page 1 of 1

Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum