Liquorix does not improve performances
hi all,
I am running Linux Mint 19.3 (same as Ubuntu 18.04) with the extra KXStudio packages. Until now I have been running a lowlatency kernel from the KXStudio repos. As I am experiencing xruns and I am using real time audio applications, I wanted to try a rt kernel. Liquorix does not seem to improve the performances though. Here is a report using the https://github.com/raboof/realtimeconfigquickscan script: $ ./realTimeConfigQuickScan.pl == GUI-enabled checks == Checking if you are root... no - good Checking filesystem 'noatime' parameter... 5.5.0 kernel - good (relatime is default since 2.6.30) Checking CPU Governors... CPU 0: 'powersave' CPU 1: 'powersave' CPU 2: 'powersave' CPU 3: 'powersave' - not good Set CPU Governors to 'performance' with 'cpupower frequency-set -g performance' or 'cpufreq-set -c <cpunr> -g performance' (Debian/Ubuntu) See also: linuxmusicians.com/viewtopic.php?f=27&t=844 Checking swappiness... 10 - good Checking for resource-intensive background processes... none found - good Checking checking sysctl inotify max_user_watches... >= 524288 - good Checking access to the high precision event timer... readable - good Checking access to the real-time clock... readable - good Checking whether you're in the 'audio' group... yes - good Checking for multiple 'audio' groups... no - good Checking the ability to prioritize processes with chrt... yes - good Checking kernel support for high resolution timers... found - good Kernel with Real-Time Preemption... not found - not good Kernel without real-time capabilities found For more information, see wiki.linuxaudio.org/wiki/system_configuration#installing_a_real-time_kernel Checking if kernel system timer is high-resolution... found - good Checking kernel support for tickless timer... not found - not good Try enabling tickless timer support (CONFIG_NO_HZ_IDLE, or CONFIG_NO_HZ in older kernels) == Other checks == Checking filesystem types... ok. Checking for devices at IRQ 123... did not find multiple. ok. This script seems to say that Liquorix is not even with Real-Time Preemption... how can I double check that? Back to top |
|||||
Liquorix doesn't include the "-rt" real time patches. The changes from the realtime patches are invasive and require high upkeep to make it forward compatible with current kernels.
You can see here that the latest patch set is for 5.4 (at the time of this posting): mirrors.edge.kernel.org/pub/linux/kernel/projects/rt/ Lets go through your realtime test script output and figure out what's going on: :: Quote :: Checking CPU Governors... CPU 0: 'powersave' CPU 1: 'powersave' CPU 2: 'powersave' CPU 3: 'powersave' - not good
Set CPU Governors to 'performance' with 'cpupower frequency-set -g performance' or 'cpufreq-set -c <cpunr> -g performance' (Debian/Ubuntu) This is either something you set or your distribution overrides. Liquorix is configured to use performance by default. By changing the governor, you'll get worse behavior due to the way MuQSS schedules threads on your processor. :: Quote :: Kernel with Real-Time Preemption... not found - not good As mentioned above, Liquorix isn't built with realtime patch set. Using MuQSS + proper configuration of SCHED_FIFO on processes that need realtime behavior, you can get a similar effect. It won't be as good as using RT patches, but it's still better than stock distribution kernels, and has similar behavior to the lowlatency kernel from Ubuntu. :: Quote :: Checking kernel support for tickless timer... not found - not good
Try enabling tickless timer support (CONFIG_NO_HZ_IDLE, or CONFIG_NO_HZ in older kernels) This check is wrong. If you really want complete realtime, you'd want to configure NOHZ_FULL and configure your boot parameters to disable interrupts on certain cores. Then, you would configure your software to run on those cores. This will completely eliminate jitter caused by the timer interrupt (Liquorix is configured for periodic 250hz for time accounting purposes). Also, Liquorix is compiled with high resolution timeout patches from Con Kolivas to be able to schedule processes below the granularity of 4ms, so the timer here is purely functioning as forced time accounting. In general, two parts are required to get the affect you're looking for. The kernel you're using must be configured to handle "real-time" requirements. But you must also configure your user space to take advantage of the kernel features. If you don't know what SCHED_FIFO or SCHED_RR is, then you need to do more research about configuring your system to reduce xruns. Simply installing software and using it isn't enough. Back to top |
|||||
All times are GMT - 8 Hours
|