Sunday, 4 September 2016

Cgroup stubs for BFS

In addition to some minor pending changes for BFS 480 here:


I've implemented basic stubs for the CPU controller cgroups feature. This patch is experimental and does NOT implement the actual controller groups features, it simply creates a compatibility layer for the cgroup filesystem. The point of this is to allow environments and applications that refuse to work (such as docker), or work improperly without them, to work. While the actual control of CPU resources won't happen, there's a good chance that it won't make any difference whatsoever since their actual use on a desktop filesystem is serious overkill and worsens throughput. I don't have any plans to implement the actual CPU groups features. This is only lightly tested but already I've noticed that a laptop that would always take ages to shutdown with BFS is now much happier, so who knows it might help machines that refuse to suspend for the same reason:


As an aside I did an experiment today with BFS480 on a machine with 12 logical cores and 64GB ram and ran a make -j allyesconfig at sched idleprio to see how it would scale and control the many idleprio tasks along with SMT nice. The machine was fine right up until it ran out of ram and then stalled while it evicted whatever it could and then continued. The load peaked and stayed around 7200 for 10 minutes. While the load was 7200, existing applications continued to work fine and browsing on firefox was virtually normal, but starting new applications took forever thanks to seriously delayed I/O.

EDIT: More testing shows this patch is UNSTABLE and can crash so just see it as proof-of-concept for now


No comments:

Post a Comment