Thursday 5 January 2012

BFS 0.416 for 3.2.0

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...

25 comments:

  1. Heh, I wish I bought Skyward Sword instead of this crappy pseudo-rpg called Skyrim. Anyway thanks for the new BFS!

    ReplyDelete
  2. Re. 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

    ReplyDelete
  3. Yeah 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.

    ReplyDelete
  4. Con, thanks for the new version of BFS and I wish
    A Happy New Year!

    cu sysitos

    ReplyDelete
  5. @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. ;)

    ReplyDelete
  6. Con, 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

    ReplyDelete
  7. Thanks CK! Glad to hear you are happy with Arch! Which kernel package are you running? Linux-ck in the AUR :)

    ReplyDelete
  8. Welcome in Arch world :)

    ReplyDelete
  9. Well 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.

    ReplyDelete
  10. ck - 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 :)

    ReplyDelete
  11. Not 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
  12. @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!

    ReplyDelete
  13. Thanks ck. Just download 3.2 vanilla yesterday and waiting for my favors patches to be ready. BFS is the first one I got.

    ReplyDelete
  14. This comment has been removed by the author.

    ReplyDelete
  15. Thanks 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. :/

    ReplyDelete
  16. I switched to Arch just before Xmas after 8 years of using Gentoo, it's very good. Thanks for the new BFS.

    ReplyDelete
  17. Happy 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:

    3.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!

    ReplyDelete
  18. 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!

    ReplyDelete
  19. Thanks a lot as always graysky!

    Yes the one change I mentioned in the post could well cause an improvement on HT CPUs.

    ReplyDelete
  20. Hi Con, just thought I'd share a few snippets from the kernel log of my D-Link DSL-524T router:

    Linux 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

    ReplyDelete
  21. Congrats D-Link, you discovered bfs heh :D

    Thanks for your benchmarks, graysky, and ck of course!

    ReplyDelete
  22. Heh cool. If I read correctly, JinxterX patched the openWRT kernel with BFS. I don't think d-link themselves did :P

    ReplyDelete
  23. Yup, 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

    ReplyDelete
  24. That's real cool. Router with BFS. I am too lazy to upgrade my d-link 825.

    ReplyDelete
  25. Thanks 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.
    learn how to hack

    ReplyDelete