From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754049AbcLLAcO (ORCPT ); Sun, 11 Dec 2016 19:32:14 -0500 Received: from mail12.tpgi.com.au ([203.12.160.162]:39478 "EHLO mail12.tpgi.com.au" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752110AbcLLAcM (ORCPT ); Sun, 11 Dec 2016 19:32:12 -0500 X-Greylist: delayed 1951 seconds by postgrey-1.27 at vger.kernel.org; Sun, 11 Dec 2016 19:32:11 EST X-TPG-Junk-Status: Message not scanned X-TPG-Antivirus: Passed X-TPG-Abuse: host=[220.240.178.83]; ip=220.240.178.83; date=Mon, 12 Dec 2016 10:59:38 +1100 From: Con Kolivas 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 Message-ID: <3227042.bI64exU7Rv@hex> User-Agent: KMail/5.1.3 (Linux/4.9.0-ck1+; KDE/5.18.0; x86_64; ; ) MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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 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