Version 0.6.6 is out, with rtcheck fixed
Inside rtcheck there is a little stress test (it is not very stressing...). The simple code is
echo "
STANDARD TEST"
cyclictest -l $loop -n -m -Sp98 -i100 -d0
echo "
STRESS TEST"
hackbench -l $loop &
cyclictest -l $loop -n -m -Sp98 -i100 -d0
You can interpret the results like this:
1) STRESS TEST more or less equal to STANDARD TEST --> your system is fine.
2) STRESS TEST give much higher numbers than STANDARD TEST --> your processor is inadequate
3) STRESS TEST give much lower numbers than STANDARD TEST --> your processor latency is not good in normal use, you can fix this adding for example intel_idle.max_cstate=0 to the Grub or Syslinux kernel line etc.
This has been conceived for testing using at the same time some "extreme" audio applications (see hqplayer) with real time upsampling from PCM to DSD (up to DSD512)
Search Criteria
Package Details: rtapp 1.1-1
Package Actions
Git Clone URL: | https://aur.archlinux.org/rtapp.git (read-only, click to copy) |
---|---|
Package Base: | rtapp |
Description: | Realtime application thread priority tuning |
Upstream URL: | https://www.audio-linux.com |
Keywords: | audio realtime |
Licenses: | custom |
Submitter: | blackhole |
Maintainer: | blackhole |
Last Packager: | blackhole |
Votes: | 4 |
Popularity: | 0.000000 |
First Submitted: | 2015-01-24 15:45 (UTC) |
Last Updated: | 2022-09-25 14:25 (UTC) |
Dependencies (5)
- bash (bash-devel-static-gitAUR, bash-devel-gitAUR, busybox-coreutilsAUR, bash-gitAUR)
- rtirq
- util-linux (busybox-coreutilsAUR, util-linux-selinuxAUR, util-linux-aesAUR)
- linux-rt (optional) – The Linux-rt kernel and modules
- linux-rt-bfq (optional) – The Linux-rt kernel and modules with BFQ scheduler
Required by (1)
Sources (7)
blackhole commented on 2016-09-28 06:19 (UTC) (edited on 2016-09-28 06:38 (UTC) by blackhole)
jrdnjhntn commented on 2016-09-27 23:44 (UTC) (edited on 2016-09-28 00:52 (UTC) by jrdnjhntn)
I just thought that I would point out the your rtcheck program doesn't detect the presence of PREEMPT_RT properly;
--> Is your kernel realtime?
kernel name: 4.6.7-rt13-3-rt_plus
*** This is not a realtime kernel
$ uname -a
Linux nine7x 4.6.7-rt13-3-rt_plus #1 SMP PREEMPT RT Tue Sep 27 15:39:23 EDT 2016 x86_64 GNU/Linux
(...and kernel .config = CONFIG_PREEMPT_RT_FULL=y)
realtimeconfigquickscan (standard tool for checking a linux system for realtime audio)
perl ./realTimeConfigQuickScan.pl, result;
...
Kernel with Real-Time Preemption... found - good
...
I didn't even look at what your code does to detect a realtime kernel, but it doesn't seem to work correctly.. 0_o
---
***EDIT: I see/looked at your script. It just searches to see if it ends in rt.
if [[ $kernel_name == *rt ]]; then
echo "This is a realtime kernel"
...ya, i think that is a pretty bad/lazy check. the realtimeconfigquickscan script actually checks the kernel config for PREEMPT_RT_FULL=y ... which, imho, is the proper way to check.
---
I'm also curious about the 'stress test' of rttest; hackbench aside, I'm not really sure how effective it is as a legit 'stress-test', unless I am missing something here. could you explain? ...
I think that while you DO need some cpu load, you also probably need to simulate some actual (potential) interruptions in order to see how they affect your max: latency numbers - to be meaningful. (maybe your script also shouldn't exit either, until it prints the final results).
blackhole commented on 2015-06-17 20:35 (UTC)
License changed to custom
blackhole commented on 2015-02-24 12:54 (UTC)
0.6.2
rtstatus: corrected bug showing error when no internal audio cards
rtmonitorirq: usage has changed, now you can simply call rtmonitorirq without parameter.
blackhole commented on 2015-02-23 16:13 (UTC)
0.6.2
added for convenience some .desktop files for launching the scripts
blackhole commented on 2015-02-17 10:08 (UTC)
0.6.1
RTMONITORIRQ
Now supports whatever number of processor cores
RTAPP
added manualdec option
manualdec: same as manual but the priority will decrease by one step from the first to the last application
blackhole commented on 2015-02-15 21:37 (UTC)
0.6
Now rtstatus is more complete.
Added rtcheck, rttest, rtmonitorirq
RTMONITORIRQ
For checking the realtime utilization you can start rtmonitorirq.
Usage: rtmonitorirq <irq>
Example: rtmonitorirq 23
This will show the name of devices connected to the specified irq and the IRQs/Second parameter.
If the same irq of an audio device is used by another device you will see that IRQs/Second will be > 0 also when the audio card is disconnected.
RTTEST
rttest will show the latency of your system using first only with cyclictest (STANDARD TEST) and after with both hackbench and cyclictest (STRESS TEST). The package rt-tests is a dependency.
If the results of STANDARD TEST are much higher than the results of STRESS TEST and you have an Intel processor you could add a line like
intel_idle.max_cstate=0
to your Grub or Syslinux kernel line in configuration file.
RTCHECK
rtcheck will show some important information about your system:
1) Type of kernel (realtime or not)
2) rtc0 and hpet max user frequency
3) CPU scaling status
4) System latency
5) Audio group members
6) pam-limits
7) Realtime max priority and max memory allocation
blackhole commented on 2015-02-07 14:20 (UTC)
0.5.2
Added rtmonitoriq (you must install itop or itop-git)
Now rtstatus should show audio cards addresses and names when there are multiple internal or firewire cards installed.
Little improvements on bash code.
blackhole commented on 2015-02-06 12:43 (UTC)
0.5.1
Little improvments on bash code.
Pinned Comments
blackhole commented on 2019-03-28 09:05 (UTC)
This application has a custom license "All rights reserved"
It can be installed for personal use, but cannot be included in commercial products without the explicit permission of developer.
blackhole commented on 2018-09-02 10:57 (UTC) (edited on 2022-01-11 14:14 (UTC) by blackhole)
Before running rtapp for the first time or after an upgrade, take a look at the config file located at /etc/rtapp/rtapp.conf and make sure the defaults are OK.
The old configuration file is saved automatically after an upgrade to /etc/rtapp/rtapp.conf.pacsave
To start rtapp you must first start the systemctl timer: systemctl start rtapp.timer
Then you can enable the service at boot: systemctl enable rtapp.timer
rtapp.timer will call rtapp.service in /usr/lib/systemd/system
rtapp will check the priority of audio applications every 60 seconds. If you want to change this please edit OnUnitActiveSec in /usr/lib/systemd/system/rtapp.timer
RTAPP Rtapp will monitor every minute applications defined in APPLICATIONS and will give FIFO priority defined in MAX_PRIORITY It can be configured in 3 modes: manual: the applications priority will have the value set in MAX_PRIORITY manualdec: same as manual but the priority will decrease by one step from the first to the last application auto: the value will be a step (RTIRQ_PRIO_DECR) under the minimum value of priority set by rtirq (this value depends on the number of items in RTIRQ_NAME_LIST and the number of audio hardware connected to the same USB bus) autodec: same as auto but the priority will decrease by one step from the first to the last application
Example:
Here you can list the applications that you want to give realtime priority
APPLICATIONS="jackd mpd hqplayer hqplayerd RoonAppliance RoonBridge sox mediacenter24 networkaudiod deadbeef a2jmidid ardour-5.12.0 rosegarden audacity"
Maximum value MAX_PRIORITY for application priority
MAX_PRIORITY="90"
MODE="autodec"
For the variables RTIRQ_PRIO_DECR, RTIRQ_PRIO_HIGH, RTIRQ_PRIO_DECR, RTIRQ_NAME_LIST see rtirq documentatio and rtirq configuration file /etc/rtirq.conf
RTAPP is designed for working with rtirq enabled: systemctl enable rtirq
RTSTATUS rtstatus will show the status of irq and applications realtime priorities.
RTCARDS It is very useful for checking if your audio card is sharing IRQ with another device since it is showing the Vendor and Product names (cat /proc/interrupts instead would be useless because it will not show cards names)
RTTEST rttest will show the latency of your system using first only cyclictest (STANDARD TEST) and after both hackbench and cyclictest (STRESS TEST). The package rt-tests is a dependency.