public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Con Kolivas <kernel@kolivas.org>
To: linux-kernel@vger.kernel.org
Subject: [ANNOUNCE] BFS CPU scheduler v0.406 for 2.6.39
Date: Sun, 5 Jun 2011 16:20:07 +1000	[thread overview]
Message-ID: <201106051620.07758.kernel@kolivas.org> (raw)

[-- Attachment #1: Type: text/plain, Size: 2041 bytes --]

People have requested an official BFS announcement separate from the -ck 
announcement, so this is to officially announce the first stable BFS CPU 
scheduler for 2.6.39.

http://www.kernel.org/pub/linux/kernel/people/ck/patches/bfs/

The major changes going into the 0.4x BFS version are a complete rework of 
busy CPU balancing to be even further simplified. Now it just flags a task as 
"sticky" if it is descheduled while still seeking further CPU time. Only one 
sticky task per CPU exists. If it is found to be sticky, it is heavily biased 
against moving to a different CPU. If a scaling CPU frequency governor is in 
use, sticky tasks will actually not move to a throttled CPU at all, instead 
preferring to wait till the CPU they came from is available again. As CPU 
frequency scaling is per-cpu, and BFS is a global CPU scheduler, BFS was 
previously unable to make the most of dynamic scaling and the turbo modes of 
newer CPUs. This change substantially improves BFS for both of those. A long-
standing bug which made low HZ configurations have poor latency behaviour was 
also found and addressed. With this change, throughput was found to further 
improve, so latency targets for BFS were improved to be the same baseline 
default 6ms regardless of the number of CPUs.

A few of the highlights where BFS performs particularly well came out in 
benchmarking on a 6x AMD machine. (This is not meant to be a claim that BFS is 
better on all workloads and all hardware, but demonstrates it has advantages 
in certain workloads up to reasonably powerful commodity hardware).

Full results are here:
http://ck.kolivas.org/patches/bfs/bfs404-cfs/
(desktop = 1000Hz + preempt, server = 100Hz + no preempt):

The highlight graphs on AMDx6 (obviously cherry-picked!) follow:

Throughput with make -j6 is: thoroughput-j6 [sic]

Throughput with x264 ultrafast is: thoroughput-ultrafast

Latency in the presence of x264 ultrafast is: latency-ultrafast-log

Thanks to Serge Belyshev for 6x results, statistical analysis and graphs.

-- 
-ck

[-- Attachment #2: thoroughput-j6.png --]
[-- Type: image/png, Size: 12699 bytes --]

[-- Attachment #3: thoroughput-ultrafast.png --]
[-- Type: image/png, Size: 10875 bytes --]

[-- Attachment #4: latency-ultrafast-log.png --]
[-- Type: image/png, Size: 12692 bytes --]

                 reply	other threads:[~2011-06-05  6:20 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=201106051620.07758.kernel@kolivas.org \
    --to=kernel@kolivas.org \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox