3.3-sched-bfs-420
commit00823a43f8979b1815a297e6fe74bb4bb8867f6f
authorJan Alexander Steffens (heftig) <jan.steffens@gmail.com>
Sat, 24 Mar 2012 11:29:58 +0000 (24 12:29 +0100)
committerJan Alexander Steffens (heftig) <jan.steffens@gmail.com>
Sat, 24 Mar 2012 11:29:58 +0000 (24 12:29 +0100)
tree7ecdf7c1c35d54eb1f1176a6ddffaec21772530e
parentc16fa4f2ad19908a47c63d8fa436a1178438c7e7
3.3-sched-bfs-420

The Brain Fuck Scheduler v0.420 AKA smoking by Con Kolivas.

A single shared runqueue O(n) strict fairness earliest deadline first design.

Excellent throughput and latency for 1 to many CPUs on desktop and server
commodity hardware.
Not recommended for 4096 cpus.

Scalability is optimal when your workload is equal to the number of CPUs on
bfs. ie you should ONLY do make -j4 on quad core, -j2 on dual core and so on.

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 accurate sub-tick accounting of tasks so userspace reported
cpu usage may be very different if you have very short lived tasks.

-ck
21 files changed:
Documentation/scheduler/sched-BFS.txt [new file with mode: 0644]
Documentation/sysctl/kernel.txt
arch/powerpc/platforms/cell/spufs/sched.c
arch/x86/Kconfig
drivers/cpufreq/cpufreq.c
drivers/cpufreq/cpufreq_conservative.c
drivers/cpufreq/cpufreq_ondemand.c
fs/proc/base.c
include/linux/init_task.h
include/linux/ioprio.h
include/linux/jiffies.h
include/linux/sched.h
init/Kconfig
init/main.c
kernel/delayacct.c
kernel/exit.c
kernel/posix-cpu-timers.c
kernel/sched/Makefile
kernel/sched/bfs.c [new file with mode: 0644]
kernel/sysctl.c
lib/Kconfig.debug