public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [ANNOUNCE] BFS CPU scheduler version 0.420 AKA "Smoking" for linux kernel 3.3.0
@ 2012-03-24  9:39 Con Kolivas
  2012-03-24  9:53 ` Gene Heskett
  0 siblings, 1 reply; 18+ messages in thread
From: Con Kolivas @ 2012-03-24  9:39 UTC (permalink / raw)
  To: linux-kernel

This is to announce the first stable release of the BFS CPU scheduler
for linux 3.3.0 designed for optimal interactivity, responsiveness and
throughput on commodity hardware.

The changes since BFS version 0.416 include a fairly large
architectural change just to bring the codebase in sync with 3.3, but
none of the changes should be noticeable in any way. One change that
may be user-visible is that the high resolution IRQ accounting now
appears to be on by default for x86 architectures. There is an issue
that system time accounting is wrong without this feature enabled in
BFS so this should correct that problem.

Other changes:
416-417: A number of ints were changed to bool which though unlikely
to have any performance impact, do make the code cleaner and the
compiled code does often come out different. rq_running_iso was
converted from a function to macro to avoid it being a separate
function call when compiled in with the attendant overhead.
requeue_task within the scheduler tick was moved to being done under
lock which may prevent rare races.  test_ret_isorefractory() was
optimised. set_rq_task() was not being called on tasks that were being
requeued within schedule() which could possibly have led to issues if
the task ran out of timeslice during that requeue and should have had
its deadline offset. The need_resched() check that occurs at the end
of schedule() was changed to unlikely() since it really is that. Moved
the scheduler version print function to bfs.c to avoid recompiling the
entire kernel if the version number is changed.

417-418: Fixed a problem with the accounting resync for linux 3.3.

418-419: There was a small possibility that an unnecessary resched
would occur in try_preempt if a task had changed affinity and called
try_preempt with its ->cpu still set to the old cpu it could no longer
run on, so try_preempt was reworked slightly. Reintroduced the
deadline offset based on CPU cache locality on sticky tasks in a way
that was cheaper than we currently offset the deadline.

419-420: Finally rewrote the earliest_deadline_task code. This has
long been one of the hottest code paths in the scheduler and small
changes here that made it look nice would often slow it down. I spent
quite a few hours reworking it to include less GOTOs while
disassembling the code to make sure it was actually getting smaller
with every change.  Then I wrote a scheduler specific version of
find_next_bit which could be inlined into this code and avoid another
function call in the hot path. The overall behaviour is unchanged from
previous BFS versions, but initial benchmarking confirms slight
improvements in throughput.

While interactivity is the prime concern for BFS, as part of the
regression testing, throughput benchmarks are performed with
kernbench. This is a plot of BFS 418/420 and mainline archlinux 3.3.0
kernel on a dual quad hyperthread core2 (lower is better):

http://postimage.org/image/wavusknl1/

Enjoy!
お楽しみ下さい

--
-ck

^ permalink raw reply	[flat|nested] 18+ messages in thread
* Re: [ANNOUNCE] BFS CPU scheduler version 0.420 AKA "Smoking" for linux kernel 3.3.0
@ 2012-03-27 20:17 Mike Blue
  2012-03-27 20:45 ` Pekka Enberg
  0 siblings, 1 reply; 18+ messages in thread
From: Mike Blue @ 2012-03-27 20:17 UTC (permalink / raw)
  To: linux-kernel


>You accuse others of disinterest in their dirty underwear, and wave away>the wide skid marks in your own with a flick of the wrist. Amazing.
Really, Mike? That is the sum total of your response to well articulated, data-supported arguments/constructive criticism to your own poorlydesigned experiment? Amazing and shame on you.  		 	   		  

^ permalink raw reply	[flat|nested] 18+ messages in thread
* Re: [ANNOUNCE] BFS CPU scheduler version 0.420 AKA "Smoking" for linux kernel 3.3.0
@ 2012-03-27 20:52 Micheal Blue
  0 siblings, 0 replies; 18+ messages in thread
From: Micheal Blue @ 2012-03-27 20:52 UTC (permalink / raw)
  To: linux-kernel



> ----- Original Message -----
> From: Mike Galbraith
> Sent: 03/27/12 01:13 AM
> To: Con Kolivas
> Subject: Re: [ANNOUNCE] BFS CPU scheduler version 0.420 AKA "Smoking" for linux kernel 3.3.0
> 
> 
> You accuse others of disinterest in their dirty underwear, and wave away
> the wide skid marks in your own with a flick of the wrist. Amazing.

That is the sum total of your response to well-articulated, data-supported arguments/constructive criticism to your own poorly designed experiment? Amazing.  

^ permalink raw reply	[flat|nested] 18+ messages in thread
[parent not found: <iIvLH-3cI-5@gated-at.bofh.it>]

end of thread, other threads:[~2012-03-28 19:39 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-03-24  9:39 [ANNOUNCE] BFS CPU scheduler version 0.420 AKA "Smoking" for linux kernel 3.3.0 Con Kolivas
2012-03-24  9:53 ` Gene Heskett
2012-03-24 10:00   ` Con Kolivas
2012-03-25  2:05   ` Valdis.Kletnieks
2012-03-25  2:33     ` Con Kolivas
2012-03-25 13:37     ` Mike Galbraith
2012-03-26 22:30       ` Con Kolivas
2012-03-27  5:13         ` Mike Galbraith
     [not found]       ` <CABqErrGaBLisO4YK5dP2O9Pv0QonZ+q9G43jm=Nf12yWVG,<1332825236.7411.54.camel@marge.simpson.net>
     [not found]         ` <SNT112-W24CBD78928F4DD6AFDA564A14A0@phx.gbl>
2012-03-28  3:48           ` Mike Galbraith
2012-03-28  5:12     ` Heinz Diehl
2012-03-28 12:39       ` Nikos Chantziaras
2012-03-28 13:53         ` Heinz Diehl
2012-03-28 15:28           ` Nikos Chantziaras
2012-03-28 16:44         ` Mike Galbraith
  -- strict thread matches above, loose matches on Subject: below --
2012-03-27 20:17 Mike Blue
2012-03-27 20:45 ` Pekka Enberg
2012-03-27 20:52 Micheal Blue
     [not found] <iIvLH-3cI-5@gated-at.bofh.it>
     [not found] ` <iIw53-3TH-15@gated-at.bofh.it>
     [not found]   ` <iIL45-3H1-5@gated-at.bofh.it>
     [not found]     ` <iJTsB-44L-1@gated-at.bofh.it>
2012-03-28 19:39       ` Martin Rogge

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox