linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [ANNOUNCE] BFS CPU scheduler v0.323 for 2.6.35
@ 2010-08-07  0:07 Con Kolivas
  2010-08-08 23:15 ` Con Kolivas
  0 siblings, 1 reply; 2+ messages in thread
From: Con Kolivas @ 2010-08-07  0:07 UTC (permalink / raw)
  To: linux-kernel

This is to announce the availability of the updated BFS CPU scheduler for 
linux kernel v2.6.35.


http://ck.kolivas.org/patches/bfs/2.6.35-sched-bfs-323.patch


General BFS documentation:

http://ck.kolivas.org/patches/bfs/sched-BFS.txt


This will be included in 2.6.35-ck1 which is to be announced shortly. If time 
permits and demand is present I will slowly port v323 to some of the earlier 
kernels again.


Changes since the last announced version (0.318):

The most significant change has been some architectural change to work with 
changes in the mainline kernel as of 2.6.35. As suspend / halt and cpu offline 
code has been changed, the whole offline cpu/online cpu code had to be 
modified in BFS to suit. Previously an affined task that was bound to an 
offlining CPU had a temporary affinity placed in an "unplugged" CPU mask. This 
system was fragile and placed an extra cpumask_t into task struct, and really 
only worked for offlining of all CPUs during suspend/halt when all came back 
online. Now, tasks that are affined to CPUs that are not currently online can 
temporarily run on any CPU. This makes the system more robust and should work 
properly on all types of suspend/halt. Thanks to Radoslaw and others in #ck 
for pointing out this issue and helping test the modified version. None of 
this should be visible in userland unless you were already having suspend 
issues.

Alexei Podtelezhnikov pointed out that the code that modified the rr_interval 
was ugly and helped rework it to do close to what I desire in a much nicer 
fashion. Once again, the rr intervals have now been shrunk a little bit 
further, and do not go above 24ms on any sized machine by default. They can 
still be modified via /proc as per always. This may decrease throughput 
slightly but should keep latencies much more stable on the many-core machine.

Also thanks to Alexei, a number of microoptimisations were done in the 
SCHED_ISO refractory testing code. Should not be user visible.

Some debugging checks that weren't relevant to BFS were removed, and 
unnecessary preempt disable/enable calls were removed. May be user visible if 
you were getting warnings in dmesg previously.

CPU load calculation for use by the cpu frequency subsystem was improved to 
properly tell how busy each individual cpu was. This may cause noticeable 
improvements in how quickly cpufreq adapts to load in the ondemand governor.

The nohz_ratelimit function new in 2.6.35, and already noted to be buggy and 
slated for removal in 2.6.35.1 was added as a no op to prevent this bug from 
showing up on BFS, and to make easy patching come 2.6.35.1

Random other minor cleanups that I can't remember.


Enjoy!

-- 
-ck

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [ANNOUNCE] BFS CPU scheduler v0.323 for 2.6.35
  2010-08-07  0:07 [ANNOUNCE] BFS CPU scheduler v0.323 for 2.6.35 Con Kolivas
@ 2010-08-08 23:15 ` Con Kolivas
  0 siblings, 0 replies; 2+ messages in thread
From: Con Kolivas @ 2010-08-08 23:15 UTC (permalink / raw)
  To: linux-kernel

On Sat, 7 Aug 2010 10:07:09 am Con Kolivas wrote:
> This is to announce the availability of the updated BFS CPU scheduler for
> linux kernel v2.6.35.
>
>
> http://ck.kolivas.org/patches/bfs/2.6.35-sched-bfs-323.patch


In response to requests I get for some kind of basic benchmarks, attached are 
the kernbench results on a quad core Q9650 of 2.6.35 and 2.6.35-ck1, same 
config. (Summary, BFS slightly slower -j2, and slightly faster on -j1 , -j4 
and -j). This benchmark is not remotely meant to be a comprehensive summary 
of performance, but a simple regression test I do regularly. While the 
throughput of BFS has decreased slightly since dropping the rr interval, it 
is still performing well. But then latency is my prime concern. On the -ck1 
release thread I will post some interbench results as well, addressing this.


Thu Aug  5 20:59:36 EST 2010
2.6.35
Average Single threaded Run (std deviation):
Elapsed Time 89.302 (0.0396232)
User Time 78.272 (0.0593296)
System Time 10.676 (0.060663)
Percent CPU 99 (0)
Context Switches 5537 (17.6352)
Sleeps 12383.8 (55.1788)

Average Half load -j 2 Run (std deviation):
Elapsed Time 45.56 (0.100995)
User Time 78.336 (0.0756968)
System Time 10.96 (0.0935414)
Percent CPU 195.6 (0.547723)
Context Switches 5462.2 (16.5136)
Sleeps 12578 (13.0958)

Average Optimal load -j 4 Run (std deviation):
Elapsed Time 25.632 (0.131985)
User Time 79.706 (1.44625)
System Time 11.46 (0.535703)
Percent CPU 279 (87.9192)
Context Switches 7780.7 (2444.47)
Sleeps 12750.8 (192.797)

Average Maximal load -j Run (std deviation):
Elapsed Time 26.65 (0.0244949)
User Time 81.372 (2.70062)
System Time 11.92 (0.800206)
Percent CPU 307.867 (82.1878)
Context Switches 12080.7 (6592.71)
Sleeps 12632.1 (233.545)

Thu Aug  5 21:13:03 EST 2010
2.6.35-ck1
Average Single threaded Run (std deviation):
Elapsed Time 89.05 (0.0324037)
User Time 79.514 (0.0890505)
System Time 9.3 (0.103682)
Percent CPU 99 (0)
Context Switches 210.4 (12.5419)
Sleeps 14390.6 (11.1041)

Average Half load -j 2 Run (std deviation):
Elapsed Time 45.826 (0.0931665)
User Time 79.95 (0.0620484)
System Time 9.772 (0.0576194)
Percent CPU 195.2 (0.447214)
Context Switches 217 (18.775)
Sleeps 14467.6 (47.8153)

Average Optimal load -j 4 Run (std deviation):
Elapsed Time 25.598 (0.109179)
User Time 81.265 (1.38736)
System Time 10.247 (0.50339)
Percent CPU 279.5 (88.8673)
Context Switches 4438.1 (4449.75)
Sleeps 14033.3 (466.044)

Average Maximal load -j Run (std deviation):
Elapsed Time 26.408 (0.0614003)
User Time 82.7227 (2.40661)
System Time 10.5467 (0.59639)
Percent CPU 308.333 (82.8162)
Context Switches 7810.2 (6091.3)
Sleeps 13889.3 (445.423)

--
-ck

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2010-08-08 23:16 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-08-07  0:07 [ANNOUNCE] BFS CPU scheduler v0.323 for 2.6.35 Con Kolivas
2010-08-08 23:15 ` Con Kolivas

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).