Well 3.2.0 is finally out.
I've done a quick and dirty port of BFS from 3.1 with mostly trivial changes and a minor change to idle CPU selection (it will choose the old CPU first now even if the other "thread" is busy on hyperthreaded CPUs). For the most part the changes are trivial only to stay in sync with the new scheduler changes in mainline so it should be a very safe upgrade. Nonetheless, I'm putting this up for testing here because my Ubuntu laptop seems unhappy starting X but that seems 3.2 related rather than BFS related. I've since moved my home desktop to arch linux and have been very happy on that distro.
So anyway here's BFS for 3.2.0 for those who want things hot off the press:
3.2-sched-bfs-416.patch
The -ck patch will not be far behind assuming the first few testers report no problems with this BFS patch. To be honest, the Virtual Memory subsystem has changed so much that I'm having trouble predicting how it will behave now and have no way of confirming the VM patches that go into -ck are even helpful any more, so I'm not even sure if I should continue to support them in light of that.
Besides, I've been too busy playing Zelda - Skyward Sword to really care much about anything code related. I've loved every 3D rendition of Zelda since Ocarina of time, but this latest incarnation is the most amazing game ever...
Heh, I wish I bought Skyward Sword instead of this crappy pseudo-rpg called Skyrim. Anyway thanks for the new BFS!
ReplyDeleteRe. the problems with vanilla 3.2 it seems this new iteration of the kernel breaks things for many people. See for example Kano's comment in this thread: http://ow.ly/8iThi
ReplyDeleteYeah I should have said myself, based on the changes I've seen, 3.2 is gonna be a stinker and will need quite some time to be good. However the VM changes are something I've long looked forward to.
ReplyDeleteCon, thanks for the new version of BFS and I wish
ReplyDeleteA Happy New Year!
cu sysitos
@ck, yep, X won't start on my Ubuntu laptop either (vanilla Linux 3.2). Guess I'll wait on 3.2.1 before adding BFS into the mix. ;)
ReplyDeleteCon, thank god you're not playing Skyrim instead. I was deathly afraid of a "I wanted to update BFS for kernel 3.2 but then I took an arrow in the knee" lame-ass joke :-P
ReplyDeleteThanks CK! Glad to hear you are happy with Arch! Which kernel package are you running? Linux-ck in the AUR :)
ReplyDeleteWelcome in Arch world :)
ReplyDeleteWell of course I'm not running a package for the kernel... The reason I like Arch is it doesn't complain that much if I go and install whatever I want manually which I not infrequently do.
ReplyDeleteck - That is a strategic mistake. Pacman is the corner stone of Arch. If you wannt build up something, write a PKGBUILD for it and do so via makepkg and allow pacman to manage it. In theory, all files on your root filesystem can be owned by a package (minus logs, config files, etc). Pacman gives you absolute control over your FS and ease of makepkg gives you the enablement to do it :)
ReplyDeleteNot as much control as make install. Not everyone wants a super intelligent package management system. I want a non-invasive smart one that copes with unexpected changes.
ReplyDelete@ck - cool, just wanted to share my opinion :) I will benchmark 3.2 stock against 3.2 + bfs 0.416 soon (ANOVA) as I have done in the past. Thanks again for all your hard work on bfs!
ReplyDeleteThanks ck. Just download 3.2 vanilla yesterday and waiting for my favors patches to be ready. BFS is the first one I got.
ReplyDeleteThis comment has been removed by the author.
ReplyDeleteThanks CK! :) Linux 3.2 + BFS 0.416 works like a charm here. I would be completely satisfied if NVIDIA fix their drivers and they would stop causing X freezes. :/
ReplyDeleteI switched to Arch just before Xmas after 8 years of using Gentoo, it's very good. Thanks for the new BFS.
ReplyDeleteHappy to report the standard make benchmark (run make bzImage in the 3.2 kernel tree 10 times totally on a dual quad machine with HT enabled) using:
ReplyDelete3.2.0 stock I/O scheduler
3.2.0 bfs v0.416
Showed a statistically significant DECREASE in compile time for the bfs!
http://s17.postimage.org/4bryfbj4f/cfq_vs_bfs_3_2.png
This next plot shows the same data (3.2.0 vs 3.2.0-ck) with the same experiment run on the previous kernel version, in my case 3.1.6-ck using bfs v0.415 and you see no statistical difference in the 10 runs compared to the bfs in 3.2.0.
http://s17.postimage.org/uk7oifslr/all.png
Great job as always, CK! Looking forward to the ck1 patchset!
Fuck... I didn't mean "3.2.0 stock I/O scheduler" I meant "3.2.0 stock scheduler" but the data and conclusion are the same despite my typo!
ReplyDeleteThanks a lot as always graysky!
ReplyDeleteYes the one change I mentioned in the post could well cause an improvement on HT CPUs.
Hi Con, just thought I'd share a few snippets from the kernel log of my D-Link DSL-524T router:
ReplyDeleteLinux version 2.6.32.27 (jinx@myhost) (gcc version 4.3.3 (GCC) ) #9 Sat Jan 7 03:50:21 GMT 2012
bootconsole [early0] enabled
CPU revision is: 00018448 (MIPS 4KEc)
TI AR7 (TNETD7300), ID: 0x0005, Revision: 0x27
.
.
Memory: 12616k/16384k available (2032k kernel code, 3768k reserved, 323k data, 128k init, 0k highmem)
SLUB: Genslabs=7, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
Hierarchical RCU implementation.
NR_IRQS:256
Clocks: prediv: 1, postdiv: 1, mul: 10
Calibrating delay loop... 149.50 BogoMIPS (lpj=747520)
.
.
Freeing unused kernel memory: 128k freed
BFS CPU scheduler v0.363 by Con Kolivas.
Please be patient, while OpenWrt loads ...
.
.
lol :) For a bit of fun I patched BFS into a custom OpenWrt kernel and it works :D Any chance of back porting 0.416 to the 2.6.32.27 kernel? hehe ;)
This is so cool, my desktop pc and router are both running BFS, woohoo! :D
Congrats D-Link, you discovered bfs heh :D
ReplyDeleteThanks for your benchmarks, graysky, and ck of course!
Heh cool. If I read correctly, JinxterX patched the openWRT kernel with BFS. I don't think d-link themselves did :P
ReplyDeleteYup, BFS 0.363 patches into the latest OpenWrt kernel source with no rejects and compiles without errors, except if you try to add a version string the adsl drivers won't load in the final firmware image. Anyway, apart from that, running BFS fine on my mips based router now :) Just a fun little experiment :P Now.. how do you benchmark a router? lol
ReplyDeleteThat's real cool. Router with BFS. I am too lazy to upgrade my d-link 825.
ReplyDeleteThanks for sharing Valuable information.it should be really helpful. Just download 3.2 vanilla yesterday and waiting for my favors patches to be ready. BFS is the first one I got.
ReplyDeletelearn how to hack