The Brain Fuck Scheduler v0.441 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
zen-tune: Give a choice between BFS and CFS

Default to BFS.
zen-tune: Add BFS autoiso for X

Conflicts:
	init/Kconfig
zen-tune: Implement zen-tune (simplified version)

Conflicts:
	kernel/sched/bfs.c
	init/Kconfig
zen-tune: set dirty_ratio / dirty_background_ratio to 50 / 20
zen-tune: add custom configuration for cpufreq ondemand down sampling factor

Conflicts:
	drivers/cpufreq/cpufreq_ondemand.c
zen-tune: add more custom values to zentune.h

More values are changed to reduce average time slice and increase opportunities
for kernel preemption.
zen-tune: Update help
zen-tune: Put BFS changes to cpufreq behind CONFIG_SCHED_BFS

Conflicts:
	drivers/cpufreq/cpufreq_conservative.c
	drivers/cpufreq/cpufreq_ondemand.c
zen-tune: Restore config options hidden by BFS patch

Conflicts:
	init/Kconfig
zen-tune: change default up_threshold and down_differential to be aggressive

On new CPU architectures, a high CPU frequency doesn't translate to signficantly
higher power draw when the CPU is idle.  Lets be more aggressive at scaling up
to mid and maximum frequencies as early as 30% CPU load.  After 60%, go for
maximum frequency.  Down sampling factor is still 10, so when above 60%, checks
happen at a factor of 10 less often decreasing context switching even further.
zen-tune: Mask some options incompatible with BFS

Conflicts:
	init/Kconfig