Friday, 29 July 2016

BFS 472, linux-4.7-ck1

This was quite a substantial merge effort this time around with a fair amount of changes in mainline kernel that affected the patch. Nonetheless everything appears to be working as planned in my limited testing. I'm unsure if the changes will fix the problems people had with suspend during the 4.6-bfs patches but the new code does touch that area. I was never affected on any of my machines so was unable to reproduce the problem in the first place.

In addition to the resync, a few minor changes have made their way into this release with respect to the way tasks preempt other tasks. See bfs470-updates.patch for details.

One other fairly significant change was properly hooking into the new schedutil parameters that drive cpufreq scaling governors. What I committed into bfs470 would not have been working properly in choosing the correct CPU frequency to run at and may have led to slowdowns and/or more power usage. This should be fixed in 472.

I should also mention that if, like me, you use the evil proprietary nvidia driver, the latest will not build with the current kernel and you'll need a couple of patches to get it working.

Enjoy!
お楽しみ下さい
-ck

EDIT: This patch will fix crashes when configured without SMT_NICE enabled:bfs472-fix_set_task_cpu.patch
And will be applied to the next BFS release.

What is the scalability of the current patch? Should I use it on a 32-core workstation that may be under heavy workload? Most discussion onscalability seems happened before 2013 and I cannot find any recent clarification on this.

Except for certain applications, BFS should be quite scalable on a 32 core workstation, especially for any applications that require lower latency (eg. networking based workloads for example.) If scalability is your prime concern, setting interactivity to off helps scalability further on BFS:echo 0 > /proc/sys/kernel/interactiveTry it for yourself, but I doubt the areas that are less scalable are problematic but it depends on what your workload is.