login
Header Space

 
 

Benchmarking CFS

September 14, 2007 - 11:35am
Submitted by Jeremy on September 14, 2007 - 11:35am.
Linux news

"Looking at these graphs (and the fixed one from your second email), it sure looks a lot like CFS is doing at *least* as well as the old scheduler in every single test, and doing much better in most of them (in addition it's much more consistent between runs)," Kyle Moffett noted regarding recent benchmarks run against the Completely Fair Scheduler by Rob Hussey. Kyle continued:

"This seems to jive with all the other benchmarks and overall empirical testing that everyone has been doing. Overall I have to say a job well done for Ingo, Peter, Con, and all the other major contributors to this impressive endeavor."

Rob's benchmarks:

lat_ctx -s 0 2

hackbench 50

pipe-test

Bound to single core:

lat_ctx -s 0 2

hackbench 50

pipe-test


From:   Rob Hussey [email blocked]
Subject: Re: [announce] CFS-devel, performance improvements
Date:	Thu, 13 Sep 2007 04:42:22 -0400

On 9/11/07, Rob Hussey [email blocked] wrote:
> Hi Ingo,
>
> When compiling, I get:

Yeah, this was my fault :(

I've had a chance to test this now, and everything feels great. I did
some benchmarks for 2.6.23-rc1, 2.6.23-rc6-cfs, and
2.6.23-rc6-cfs-devel:
lat_ctx -s 0 2:
2.6.23-rc1	2.6.23-rc6-cfs	2.6.23-rc6-cfs-devel
   5.15		   4.91			5.05
   5.23		   5.18			4.85
   5.19		   4.89			5.17
   5.36		   5.23			4.86
   5.35		   5.00			5.13
   5.34		   5.05			5.12
   5.26		   4.99			5.06
   5.11		   5.04 		4.96
   5.29		   5.19		  	5.18
   5.40		   4.93		   	5.07

hackbench 50:
     2.6.23-rc1	2.6.23-rc6-cfs	2.6.23-rc6-cfs-devel
	6.301 		5.963 		5.837
	6.417		5.961 		5.814
	6.468 		5.965 		5.757
	6.525 		5.926 		5.840
	6.320 		5.929 		5.751
	6.457 		5.909		5.825

pipe-test (http://redhat.com/~mingo/cfs-scheduler/tools/pipe-test.c):
     2.6.23-rc1	 2.6.23-rc6-cfs	2.6.23-rc6-cfs-devel
	14.29		14.03		13.89
	14.31		14.01		14.10
	14.27		13.99		14.15
	14.31		14.02		14.16
	14.53		14.02		14.14
	14.53		14.27		14.16
	14.51		14.36		14.12
	14.48		14.33		14.16
	14.52		14.36		14.17
	14.47		14.36		14.15

I turned the results into graphs as well. I'll attach them, but they're also at:
http://www.healthcarelinen.com/misc/lat_ctx_benchmark.png
http://www.healthcarelinen.com/misc/hackbench_benchmark.png
http://www.healthcarelinen.com/misc/pipe-test_benchmark.png

The hackbench and pipe-test numbers are very encouraging. The avg
between the 2.6.23-rc6-cfs and 2.6.23-rc6-cfs-devel lat_ctx numbers
are nearly identical (5.041 and 5.045 respectively).


From: Ingo Molnar [email blocked] Subject: Re: [announce] CFS-devel, performance improvements Date: Thu, 13 Sep 2007 11:06:55 +0200 * Rob Hussey [email blocked] wrote: > On 9/11/07, Rob Hussey [email blocked] wrote: > > Hi Ingo, > > > > When compiling, I get: > > Yeah, this was my fault :( > > I've had a chance to test this now, and everything feels great. I did > some benchmarks for 2.6.23-rc1, 2.6.23-rc6-cfs, and > 2.6.23-rc6-cfs-devel: thanks for the numbers! Could you please also post the .config you used? Thx, Ingo
From: Ingo Molnar [email blocked] Subject: Re: [announce] CFS-devel, performance improvements Date: Thu, 13 Sep 2007 13:48:28 +0200 * Rob Hussey [email blocked] wrote: > Well, I was going over my config myself after you asked for me to post > it, and I thought to do the same thing. Except, disabling sched_debug > caused the same error as before: > In file included from kernel/sched.c:794: > kernel/sched_fair.c: In function 'task_new_fair': > kernel/sched_fair.c:857: error: 'sysctl_sched_child_runs_first' > undeclared (first use in this function) > kernel/sched_fair.c:857: error: (Each undeclared identifier is > reported only once > kernel/sched_fair.c:857: error: for each function it appears in.) > make[1]: *** [kernel/sched.o] Error 1 > make: *** [kernel] Error 2 > > It only happens with sched_debug=y. I take it back, it wasn't my fault :) > > As for everything else, I'd be happy to. are you sure this is happening with the latest iteration of the patch too? (with the combo-3.patch?) You can pick it up from here: http://people.redhat.com/mingo/cfs-scheduler/devel/sched-cfs-v2.6.23-rc6-v21-combo-3.patch I tried your config and it builds fine here. Ingo
From: "Rob Hussey" [email blocked] Subject: Re: [announce] CFS-devel, performance improvements Date: Thu, 13 Sep 2007 21:47:25 -0400 On 9/13/07, Ingo Molnar [email blocked] wrote: > > * Rob Hussey [email blocked] wrote: > > > Well, I was going over my config myself after you asked for me to post > > it, and I thought to do the same thing. Except, disabling sched_debug > > caused the same error as before: > > In file included from kernel/sched.c:794: > > kernel/sched_fair.c: In function 'task_new_fair': > > kernel/sched_fair.c:857: error: 'sysctl_sched_child_runs_first' > > undeclared (first use in this function) > > kernel/sched_fair.c:857: error: (Each undeclared identifier is > > reported only once > > kernel/sched_fair.c:857: error: for each function it appears in.) > > make[1]: *** [kernel/sched.o] Error 1 > > make: *** [kernel] Error 2 > > > > It only happens with sched_debug=y. I take it back, it wasn't my fault :) > > > > As for everything else, I'd be happy to. > > are you sure this is happening with the latest iteration of the patch > too? (with the combo-3.patch?) You can pick it up from here: > > http://people.redhat.com/mingo/cfs-scheduler/devel/sched-cfs-v2.6.23-rc6-v21-combo-3.patch > > I tried your config and it builds fine here. > > Ingo > I managed to work it all out (it was my fault after all), and I've now made the changes you suggested to my .configs for 2.6.23-rc1 and 2.6.23-rc6. I've done the benchmarks all over, including tests with the task bound to a single core. Without further ado, the numbers I promised: lat_ctx -s 0 2 # rc1 rc6 cfs-devel 1 4.58 4.39 4.42 2 4.76 4.42 4.41 3 4.74 4.52 4.67 4 4.74 4.44 4.76 5 4.79 4.74 4.59 6 4.80 4.65 4.76 7 4.52 4.54 4.50 8 4.72 4.57 4.62 9 4.87 4.67 4.80 10 4.69 4.47 4.65 hackbench 50 # rc1 rc6 cfs-devel 1 6.634 5.969 5.894 2 6.342 5.974 5.903 3 6.219 5.913 5.941 4 6.702 5.980 5.916 5 6.287 6.007 5.943 6 6.239 6.022 5.899 7 6.434 5.946 5.904 8 6.229 6.007 5.941 9 6.387 5.947 5.880 10 6.383 5.946 5.933 pipe-test # rc1 rc6 cfs-devel 1 13.39 13.16 13.20 2 13.37 13.12 13.22 3 13.19 13.17 13.26 4 13.17 13.16 13.18 5 13.16 13.22 13.23 6 13.15 13.19 13.18 7 13.18 13.42 13.21 8 13.45 13.39 13.26 9 13.40 13.40 13.28 10 13.39 13.44 13.24 Bound to single core: lat_ctx -s 0 2 # rc1 rc6 cfs-devel 1 3.20 2.61 2.37 2 3.20 2.60 2.40 3 3.21 2.67 2.38 4 3.19 2.66 2.34 5 3.19 2.64 2.37 6 3.22 2.67 2.36 7 3.21 3.29 2.36 8 3.22 2.61 2.44 9 3.23 2.68 2.36 10 3.22 2.60 2.37 hackbench 50 # rc1 rc6 cfs-devel 1 7.528 7.950 7.538 2 7.649 8.026 7.548 3 7.613 8.160 7.580 4 7.550 8.054 7.558 5 7.563 8.373 7.559 6 7.617 8.152 7.550 7 7.593 7.831 7.562 8 7.602 8.311 7.588 9 7.589 8.010 7.552 10 7.682 8.059 7.556 pipe-test # rc1 rc6 cfs-devel 1 10.29 9.27 8.54 2 10.30 9.29 8.54 3 10.31 9.28 8.54 4 10.29 9.27 8.54 5 10.28 9.28 8.53 6 10.30 9.28 8.53 7 10.30 9.28 8.54 I've made graphs like last time: http://www.healthcarelinen.com/misc/lat_ctx_benchmark.png http://www.healthcarelinen.com/misc/hackbench_benchmark.png http://www.healthcarelinen.com/misc/pipe-test_benchmark.png http://www.healthcarelinen.com/misc/BOUND_lat_ctx_benchmark.png http://www.healthcarelinen.com/misc/BOUND_hackbench_benchmark.png http://www.healthcarelinen.com/misc/BOUND_pipe-test_benchmark.png I'll also attach the graphs, as well as my .configs. As for the data, I really can't read much into it. I think the graphs tell the story better (if only I could understand the story). Overall though, a definite improvement over 2.6.23-rc1.
From: "Rob Hussey" [email blocked] Subject: Re: [announce] CFS-devel, performance improvements Date: Thu, 13 Sep 2007 22:26:33 -0400 On 9/13/07, Rob Hussey [email blocked] wrote: > Bound to single core: ... > hackbench 50 > # rc1 rc6 cfs-devel > 1 7.528 7.950 7.538 > 2 7.649 8.026 7.548 > 3 7.613 8.160 7.580 > 4 7.550 8.054 7.558 > 5 7.563 8.373 7.559 > 6 7.617 8.152 7.550 > 7 7.593 7.831 7.562 > 8 7.602 8.311 7.588 > 9 7.589 8.010 7.552 > 10 7.682 8.059 7.556 > I knew there was no way I'd post all these numbers and not screw something up. Switch rc6 and rc1 for hackbench 50 (bound to single core). Updated graph: http://www.healthcarelinen.com/misc/BOUND_hackbench_benchmark_fixed.png Also attached.
From: Kyle Moffett [email blocked] Subject: Re: [announce] CFS-devel, performance improvements Date: Fri, 14 Sep 2007 02:59:58 -0400 On Sep 13, 2007, at 21:47:25, Rob Hussey wrote: > On 9/13/07, Ingo Molnar [email blocked] wrote: >> are you sure this is happening with the latest iteration of the >> patch too? (with the combo-3.patch?) You can pick it up from here: >> >> http://people.redhat.com/mingo/cfs-scheduler/devel/sched-cfs- >> v2.6.23-rc6-v21-combo-3.patch > > I managed to work it all out (it was my fault after all), and I've now > made the changes you suggested to my .configs for 2.6.23-rc1 and > 2.6.23-rc6. I've done the benchmarks all over, including tests with > the task bound to a single core. Without further ado, the numbers I > promised: > > [...] > > I've made graphs like last time: > http://www.healthcarelinen.com/misc/lat_ctx_benchmark.png > http://www.healthcarelinen.com/misc/hackbench_benchmark.png > http://www.healthcarelinen.com/misc/pipe-test_benchmark.png > http://www.healthcarelinen.com/misc/BOUND_lat_ctx_benchmark.png > http://www.healthcarelinen.com/misc/BOUND_hackbench_benchmark.png > http://www.healthcarelinen.com/misc/BOUND_pipe-test_benchmark.png Well looking at these graphs (and the fixed one from your second email), it sure looks a lot like CFS is doing at *least* as well as the old scheduler in every single test, and doing much better in most of them (in addition it's much more consistent between runs). This seems to jive with all the other benchmarks and overall empirical testing that everyone has been doing. Overall I have to say a job well done for Ingo, Peter, Con, and all the other major contributors to this impressive endeavor. Cheers, Kyle Moffett



Related Links:

When I first looked at the

September 15, 2007 - 5:28am
Anonymous (not verified)

When I first looked at the graphs I thought there is a big difference between the different versions. I was fooled by the y-scale that does not begin at 0. An y-scale starting from 0 would have illustrated that the differences are marginal.

y scale

September 15, 2007 - 1:47pm

The y scale doesn't have to start at 0 to be significant. The graphs say to me that there may be optimizations that can still be done on SMP machines, but the other results _are_ significant. hackbench-50 and pipe-test show much more consistent (aka predictable) behavior, and the single core lat_ctx and pipe_test graphs also show improvements of about 25% and 18%. Just because the numbers are small doesn't mean those differences aren't big...

An y-scale starting from 0

September 16, 2007 - 4:51pm
Anonymous (not verified)

An y-scale starting from 0 would have been rediculous, hiding what each scheduler does better... There's a reason math programs like matlab zoom the graph, you know? This is not a commercial, it's input to/from a technical list.

And no, they are definately not "marginal".

Would have been interesting

September 16, 2007 - 9:18pm
Anonymous (not verified)

It would have been even more interesting to see linux-2.6.22-ck1 (Con's latest scheduler) ran along side the ones shown for comparison..

Scheduler, linux-2.6.22-ck1 vs 2.6.23-rc6

September 17, 2007 - 3:22am
Anonymous (not verified)

Here is a recent report:
http://lkml.org/lkml/2007/9/16/73

Doesn't mean anything, it's just one report about desktop behaviour, but It's worth mentioning..

Something tells me it won't

September 17, 2007 - 9:43am
Anonymoos (not verified)

Something tells me it won't happen. ^^

It already did

September 17, 2007 - 9:51am
Anonymous (not verified)

Actually, new benchmarks do exactly this:
http://kerneltrap.org/mailarchive/linux-kernel/2007/9/17/261647

2.6.21 (old scheduler) versus 2.6.22-ck1 (SD scheduler) versus 2.6.23-rc6-cfs-devel (CFS).

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
speck-geostationary