| Both sides previous revisionPrevious revisionNext revision | Previous revision |
| wiki:system_configuration [2025/04/05 18:32] – [Simultaneous Multithreading] autostatic | wiki:system_configuration [2026/01/29 20:45] (current) – [cyclictest] autostatic |
|---|
| | |
| See also https://manual.ardour.org/setting-up-your-system/the-right-computer-system-for-digital-audio/ and https://discourse.ardour.org/t/avoiding-hyperthreading/89367/3 | See also https://manual.ardour.org/setting-up-your-system/the-right-computer-system-for-digital-audio/ and https://discourse.ardour.org/t/avoiding-hyperthreading/89367/3 |
| | |
| | More information on SMT/hyper-threading: https://en.wikipedia.org/wiki/Simultaneous_multithreading |
| ==== Solve IRQ conflicts by unbinding devices ==== | ==== Solve IRQ conflicts by unbinding devices ==== |
| |
| The [[https://codeberg.org/rtcqs/rtcqs|rtcqs]] script automatically analyzes your current configuration. This script will make configuration suggestions based on your current setup and link to the relevant sections on this page for background information. | The [[https://codeberg.org/rtcqs/rtcqs|rtcqs]] script automatically analyzes your current configuration. This script will make configuration suggestions based on your current setup and link to the relevant sections on this page for background information. |
| |
| rtcqs - version 0.5.0 | rtcqs - version 0.6.6 |
| | |
| Root User | Root User |
| [ OK ] Not running as root. | [ OK ] Not running as root. |
| | |
| Audio Group | Group Limits |
| =========== | ============ |
| [ OK ] User music is in the audio group. | [ OK ] User music is member of a group that has sufficient rtprio (95) and memlock (unlimited) limits set. |
| | |
| CPU Frequency Scaling | CPU Frequency Scaling |
| ===================== | ===================== |
| [ OK ] The scaling governor of all CPU's is set at performance. | [ OK ] The scaling governor of all CPUs is set to performance. |
| | |
| | Simultaneous Multithreading |
| | =========================== |
| | [ OK ] Simultaneous Multithreading (SMT, also called hyper-threading) is disabled. |
| | |
| Kernel Configuration | Kernel Configuration |
| Preempt RT | Preempt RT |
| ========== | ========== |
| [ OK ] Kernel 5.17.1-rt17 is a real-time kernel. | [ OK ] Kernel 6.13.8-4-liquorix-amd64 is using threaded IRQs. |
| | |
| Spectre/Meltdown Mitigations | Spectre/Meltdown Mitigations |
| Swappiness | Swappiness |
| ========== | ========== |
| [ OK ] Swappiness is set at 10. | [ OK ] Your system is configured without swap, setting swappiness does not apply. |
| | |
| Filesystems | Filesystems |
| =========== | =========== |
| [ OK ] The following mounts can be used for audio purposes: /, /mnt/data | [ OK ] The following mounts can be used for audio purposes: / |
| [ WARNING ] The following mounts should be avoided for audio purposes: /run/user/1000/gvfs. See also https://wiki.linuxaudio.org/wiki/system_configuration#filesystems | |
| | |
| IRQs | IRQs |
| ==== | ==== |
| [ OK ] USB port ehci_hcd:usb1 with IRQ 16 does not share its IRQ. | [ OK ] USB port xhci_hcd with IRQ 45 does not share its IRQ. |
| USB port ehci_hcd:usb2 with IRQ 23 does not share its IRQ. | [ OK ] Soundcard snd_hda_intel:card10 with IRQ 91 does not share its IRQ. |
| USB port xhci_hcd with IRQ 25 does not share its IRQ. | [ OK ] USB port xhci_hcd with IRQ 43 does not share its IRQ. |
| Soundcard snd_hda_intel:card10 with IRQ 31 does not share its IRQ. | [ OK ] Soundcard snd_hda_intel:card11 with IRQ 92 does not share its IRQ. |
| | [ OK ] USB port xhci_hcd with IRQ 49 does not share its IRQ. |
| | [ OK ] USB port xhci_hcd with IRQ 47 does not share its IRQ. |
| | |
| Power Management | Power Management |
| ================ | ================ |
| [ OK ] Power management can be controlled from user space. This enables DAW's like Ardour and Reaper to set CPU DMA latency which could help prevent xruns. | [ OK ] Power management can be controlled from user space. This enables DAWs like Ardour and Reaper to set CPU DMA latency which could help prevent xruns. |
| |
| Discuss this script at the [[https://linuxmusicians.com/viewtopic.php?f=24&t=24000|LinuxMusicians Forum]] | Discuss this script at the [[https://linuxmusicians.com/viewtopic.php?f=24&t=24000|LinuxMusicians Forum]] |
| {{:wiki:htop_2023-10-15.png|Terminal running htop}} | {{:wiki:htop_2023-10-15.png|Terminal running htop}} |
| |
| ==== latencytop ==== | ==== LatencyTOP ==== |
| |
| ''latencytop'' is a very useful tool to find out what process is causing system latency to happen. | [[https://www.latencytop.org/|LatencyTOP]] is a very useful tool to find out what processes are causing system latency to happen. LatencyTOP only works on kernels that have ''CONFIG_LATENCYTOP'' enabled. This would mean building your own kernel as practically all packaged kernels do not have this feature enabled by default. |
| |
| {{:wiki:latencytop.png|latencytop}} | {{:wiki:latencytop.png|latencytop}} |
| |
| Just as ''latencytop'' measures system latencies, ''[[https://wiki.linuxfoundation.org/realtime/documentation/howto/tools/cyclictest/start|cyclictest]]'' measures kernel latencies. ''cyclictest'' has quite some options but one of the most used ways to run the command is: | Just as ''latencytop'' measures system latencies, ''[[https://wiki.linuxfoundation.org/realtime/documentation/howto/tools/cyclictest/start|cyclictest]]'' measures kernel latencies. ''cyclictest'' has quite some options but one of the most used ways to run the command is: |
| # cyclictest -t1 -p 80 -n -i 10000 -l 10000 -m | # cyclictest -t1 -p 80 -i 10000 -l 10000 -m |
| One single thread (''-t1''), priority of 80 (''-p 80''), use clock_nanosleep (''-n''), use 10000 us base interval of thread (''-i 1000''), use 1000 loops and then exit (''-l 10000''), lock current and future memory allocations (''-m''). More on clock_nanosleep can be found in its manpage (''man clock_nanosleep''). | One single thread (''-t1''), priority of 80 (''-p 80''), use 10000 µs base interval of thread (''-i 10000''), use 10000 loops and then exit (''-l 10000''), lock current and future memory allocations (''-m''). ''cyclictest'' uses clock_nanosleep by default. More on clock_nanosleep can be found in its manpage (''man clock_nanosleep''). |
| |
| Other examples of the usage of ''cyclictest'': | Other examples of the usage of ''cyclictest'': |