A development blog of what Con Kolivas is doing with code at the moment with the emphasis on linux kernel, MuQSS, BFS and -ck.

Monday, 25 August 2014

BFS 453/454/455/456 and 3.16-ck2

Here is an updated set of BFS patches with the accumulated bugfixes as debugged on this blog for kernels 3.13 to 3.16 inclusive. The main obvious bug which affected people was the ath9k module which would hang on suspend/resume. However there were likely a number of subtle bugs across the board that most people would not be aware of and even I only noticed that kvm behaved much better after this applied bugfix which stretches back to every BFS after 3.12.

In order to make up for the fact that there are numerous kernels out there based on BFS across the different versions, I have updated BFS and numbered the versions according to which base kernel they are on. Note that there are no feature backports on the older kernels, only the bugfixes, so SMT nice is only on the 3.16 BFS.

54 comments:

Just want to post here that I'm working on a multiple run queue lock solution for BFS recently. I have finished the first stage work and working on the next stage. I wrote a detail post at http://cchalpha.blogspot.com/2014/08/variable-run-queue-lockingvrql-for-bfs.html

And plz consider the code is very experimental and use for test only. Many thanks.

Please, at first, sync your work to the current 3.16 kernel BFS-456/CK-2, as your code reads 20140818.I won't test this, as this is way too old for the actual BFS/CK-2.Give us a newer one -- then I'll test it.

hi, thank you for the time you spend doing this, really, thank you soooooo much for the effort.I'm writting a blog page in spanish for installing zfs on root with ubuntu, I will also post my experience with the ck series of patches, will post later.

this bfs 456 is perfect, functioning well before this version all versions of the kernel bfs after 3:12 had sporadic problems locking, preventing normal use of the computer. eutou using the ck2-3.16, and it is working perfectly, much faster than the official scaled kernel, the performance is much better, taking 30% less time on the task of converting video, best gaming performance and processes in parallel and indexing faster. Thank you for this launch my congratulations.

I have to prepare a fixed kernel 3.15.10 variant with smt nice 6I have understood that to fix the ath9k trouble are two patches

I suppose the last one is1>http://ck.kolivas.org/patches/bfs/3.0/3.15/test/3.15-ck1-smtnice6.patchplus should add the fixes2> http://ck.kolivas.org/patches/bfs/3.0/3.16/test/bfs450-sched-ipi.patch3> http://ck.kolivas.org/patches/bfs/3.0/3.16/test/bfs450-add-preempt-resched.patch

Maybe you could also try first http://ck.kolivas.org/patches/bfs/3.0/3.15/3.15-sched-bfs-455.patch (what is dedicatedly for 3.15)and then the http://ck.kolivas.org/patches/bfs/3.0/3.15/test/3.15-ck1-smtnice6.patch

Just an idea, that you'd get all BFS bugfixes in at first and then try to apply the SMTnice patch later. (I haven't tried this on my own, so far.)

I'd like to use BFS on my laptop, but I wonder if doing so I would gain responsivity at the cost of loosing the energy-aware features in the official scheduler.

Quoting from phoronix: "Of the highlights for the scheduler tree with the Linux 3.16 merge window are NUMA scheduling updates for better performance, CPU idle changes to improve the high level idle scheduling logic, standardized idle polling across architectures, and continued work on preparing better power/energy-aware scheduling. Another change to point out is for using the deepest C-state always when in the "freeze" sleep state."

@ckI think I found a resched_best_idle issue when investigating the regression of VRQ solution. In short, resched_best_idle() should not be called when prev is idle or prev is deactivated. For detail, please check my post at http://cchalpha.blogspot.com/2014/08/after-reversed-commit-which-i-bitsect.html

Feed back request here http://ck-hack.blogspot.com.au/2014/08/smthyperthreading-nice-and-scheduling.html?showComment=1409445323216#c6490839717259700774Im new to linux and just built a desktop running an AMD 8 core cpu.

There are 2 related patches.The most important one is "Don't reschedule an idle task or deactivated task" in the above post, Here is a dedicated patch can clean apply upon bfs 0456.https://bitbucket.org/alfredchen/linux-gc/downloads/0456-resched_best_idle.patch

An other related patch that I have posted in 3.15 thread isbfs: Remove unnecessary resched_suitable_idle() in schedule().

@ck plz check my post.I am not remove all resched_suitable_idle() calls. Just add the condition doesn't call resched_suitable_idle for idle task and deactivated task, it's no point to reschedule these tasks to what best idle cpu.

I believe to have understood that:https://bitbucket.org/alfredchen/linux-gc/downloads/0456-resched_best_idle.patch1> the first one, is that you have tested a gain of about 3% to the plain bfs

2> while for the second modify, what is the purpose of that?what improvement or what fixing from the second change?https://bitbucket.org/alfredchen/linux-gc/commits/daf5b14d1186a9d9626fd400cf2bc3acd3f68a36?at=v3.16.1-gc

Do we still need to apply https://gist.githubusercontent.com/pfactum/9332896/raw/0001-ck-3.12-fix-BFS-compiling-with-CONFIG_SMP-n.patch on top of this updated 3.14 BFS patch ? I tested it and it still applies cleanly, but don't know for sure if we still need it.

Thanks for the head-up. I have started porting 0456 to 3.17 last weekend and there still some sync-up with mainline core.c left, but it already running on one of my machines. Hopefully my porting can be released in a day or two.

Thank you for publishing your BFS-port to 3.17 below! I really hope, CK would pick up --at least-- some of your improvements.

Currently I'm very glad with the 3.16 kernel until now: 3.16.5 + bfs/ck2 + gc-patches + bfq + my reworked revert patch for "drm-i915-Move-all-ring-resets-before-setting-the-HWS-page".In this fashion, this kernel gets the least annoying and best performing one since months.BTW, would someone of you NOT recommend to enable CONFIG_OPTIMIZE_INLINING ? I'm not completely sure whether to blame recent mainline changes or this config setting. Overall performance and responsiveness seems to be better with it enabled?! My gcc is a 4.8.3 20140627 [gcc-4_8-branch revision 212064].

Many thanks to all participants in all involved projects!!!Manuel Krause

P.S.: Not only the upgraded bfq is missing, I'd also wish to see a new TuxOnIce for 3.17. ^^

Seems like all Australians are on holiday? ;-) O.k. they should enjoy, of course!

I can encourage you to test Alfred Chen's latest -gc patches for the 3.17 kernel. Unfortunately, these are up to 18 (!) separate patches to be applied, including the last BFS with enhancements. I hope, he would provide a all-in-one complete patch sometimes. But so he let's us choose our dose of poison. They apply well on 3.17.2 and do also work well. Two days of everyday's desktop work based testing.http://cchalpha.blogspot.de/2014/11/whats-new-for-317-gc-patch-set.html

@post-factumThanks for the reminder! And of course for your work, too. With the help of your shortlog for 3.17-pf1 and your and the kernel git repository, I was able to patch my 3.17.2 with the "old" TuxOnIce on here yesterday. (This enables me to not use your monolithic -pf1 patch, but to patch several addons separately, e.g. more of Alfred's improvements than you've included and to also omit UKSM what has shown to be prone for errors in my past experience.)It's working fine and seems to be stable.