linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Con Kolivas <kernel@kolivas.org>
To: linux-kernel@vger.kernel.org
Subject: [ANNOUNCE] MuQSS CPU scheduler v0.15 for linux-4.9
Date: Mon, 12 Dec 2016 10:59:33 +1100	[thread overview]
Message-ID: <3227042.bI64exU7Rv@hex> (raw)

Announcing an updated stable version of the Multiple Queue Skiplist Scheduler, 
the successor to BFS, version 0.150 for linux-4.9.

Download:
http://ck.kolivas.org/patches/muqss/4.0/4.9/4.9-sched-MuQSS_150.patch

Git tree:
https://github.com/ckolivas/linux/tree/4.9-muqss

--- 

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

A multiple runqueue strict fairness earliest effective virtual deadline first
design.

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.

-ck

>From 0ce996c80e2c547e8bc9cfb23f028d80f34a5210 Mon Sep 17 00:00:00 2001
From: Con Kolivas <kernel@kolivas.org>
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

-- 
-ck

                 reply	other threads:[~2016-12-12  0:32 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=3227042.bI64exU7Rv@hex \
    --to=kernel@kolivas.org \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).