[ANNOUNCE] linux-4.15-ck1, Multiple Queue Skiplist Scheduler version 0.170 with variable runqueue sharing.

From: Con Kolivas
Date: Mon Feb 19 2018 - 06:20:53 EST


Announcing a new -ck release, 4.15-ck1 with the latest version of the
Multiple Queue Skiplist Scheduler, version 0.170. These are patches
designed to improve system responsiveness and interactivity with
specific emphasis on the desktop, but configurable for any workload.


linux-4.15-ck1:
http://ck.kolivas.org/patches/4.0/4.15/4.15-ck1/

Git tree:
https://github.com/ckolivas/linux/tree/4.15-ck

MuQSS only:

Download:
http://ck.kolivas.org/patches/muqss/4.0/4.15/0001-MultiQueue-Skiplist-Scheduler-version-0.170.patch

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


Web: http://kernel.kolivas.org


Alas Google has falsely flagged my site as having malware, even the
kernel patch pages and they're such a monstrosity there is no place to
meaningfully appeal this so I've given up trying so you'll have to
wade through moronic warnings to get to the patches, or just use git.


The major change in this release is the addition of a much more mature
version of the experimental runqueue sharing code I posted on my blog
earlier. After further experimenting and with lots of feedback from
users, I decided to make multicore based sharing default instead of
multithread. The numbers support better throughput and it should
definitely provide more consistent low latency compared to previous
versions of MuQSS. For those that found that interactivity on MuQSS
never quite matched that of BFS before it, you should find this
version now equals it.


In addition, the runqueue sharing code in this release also allows you
to share runqueues for SMP as well so you can share runqueues with all
physical CPUs if latency is your primary concern, even though it will
likely lead to worse throughput. I have not made it possible to share
between NUMA nodes because the cost of shifting tasks across nodes is
usually substantial and it may even have worse latency, and will
definitely have worse throughput.


I've also made the runqueue sharing possible to be configured at boot
time with the boot parameter rqshare. Setting it to one of none, smt,
mc, smp is done by appending the following to your kernel command
line:

rqshare=mc


Documentation has been added for the runqueue sharing code above to
the MuQSS patch.


A number of minor bugs were discovered and have been fixed, which has
also made booting more robust.


The -ck tree is mostly just a resync of previous patches, but with the
addition of a patch to disable a -Werror CFLAG setting in the build
tools which has suddenly made it impossible to build the kernel with
newer GCCs on some distros.

Patchlist:

0001-MultiQueue-Skiplist-Scheduler-version-0.170.patch
0002-Make-preemptible-kernel-default.patch
0003-Expose-vmsplit-for-our-poor-32-bit-users.patch
0004-Create-highres-timeout-variants-of-schedule_timeout-.patch
0005-Special-case-calls-of-schedule_timeout-1-to-use-the-.patch
0006-Convert-msleep-to-use-hrtimers-when-active.patch
0007-Replace-all-schedule-timeout-1-with-schedule_min_hrt.patch
0008-Replace-all-calls-to-schedule_timeout_interruptible-.patch
0009-Replace-all-calls-to-schedule_timeout_uninterruptibl.patch
0010-Don-t-use-hrtimer-overlay-when-pm_freezing-since-som.patch
0011-Make-hrtimer-granularity-and-minimum-hrtimeout-confi.patch
0012-Reinstate-default-Hz-of-100-in-combination-with-MuQS.patch
0013-Make-threaded-IRQs-optionally-the-default-which-can-.patch
0014-Swap-sucks.patch
0015-Enable-BFQ-io-scheduler-by-default.patch
0016-Fix-Werror-build-failure-in-tools.patch
0017-Add-ck1-version.patch


Enjoy!

ãæããäãã

-ck