The Brain Fuck Scheduler v0.443 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
bfs: Put changes to cpufreq behind CONFIG_SCHED_BFS

Conflicts:
	drivers/cpufreq/cpufreq_ondemand.c
bfs: Tweak configs and restore hidden config options
bfs: Add autoiso for X
Merge remote-tracking branch 'github/3.12/bfs' into 3.12/zen-tune

Conflicts:
	init/Kconfig
zen-tune: Add BFS tweaks