Liquorix does not improve performances
buscon
Status: New User - Welcome
Joined: 27 Feb 2020
Posts: 1
Reply Quote
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
damentz
Status: Assistant
Joined: 09 Sep 2008
Posts: 1122
Reply Quote
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
Display posts from previous:   

All times are GMT - 8 Hours