Hi,
I'm the developer of ulatencyd[1], a dynamic system optimizer for the
linux kernel.
I want to write a configuration that suits hifi audio usage better then
the default configuration. The default optimizes for normal workloads,
restrains amok running processes, gives priority to the active running
program, the window manager and desktop ui.
One problem I was facing is realtime tasks. Currently only two programs
are allowed to get rt priority, thats jackd and pulseaudio. I don't know
of any other that a normal user may use.
The default configuration looks like this:
https://github.com/poelzi/ulatencyd/blob/master/rules/scheduler_desktop.lua
jackd and pulseaudio go into users bg_high group which has 1/3 of the
users cpu share time and max 45% cpu realtime, which should be enough
for normal workload.
Normal processes, that are not caught specially are grouped into groups,
using the pgrp process value. ( to workaround bad ui behaviour like kde
& gnome this value can be overridden by rules. Usually all programs
started get a group and all children of them end in the same group.)
I guess you guys need something different.
• do you a lot of rt tasks besides pulseaudio and jackd ?
• do they need a lot of cpu time ? is 45% not enough for jackd/pulseaudio ?
• would it be better to just put everything into one cgroup instead of
many smaller groups ? maybe just make exceptions for ui apps and the
rest into one group ?
There are other neat things that could be done:
• move all away from one processor and move jackd for example on it,
giving him lowest latency possible. ok, not perfect as the kernel may
still use this cpu. But interrupts can also be masked on the core.
• maybe changing /proc/sys/kernel/sched_latency_ns will help
As you can see, there is a lot that can be done. As I'm not doing audio,
I really would like to get some requirements from users first, or even
better. Someone with insights is writing the configuration/rules. I will
be glad to assist :-)
kind regards
daniel
[1]
https://github.com/poelzi/ulatencyd