| Both sides previous revisionPrevious revisionNext revision | Previous revision |
| wiki:system_configuration [2026/01/27 10:01] – [latencytop] autostatic | wiki:system_configuration [2026/08/11 20:04] (current) – [Power management] autostatic |
|---|
| |
| And ''/dev/cpu_dma_latency'' should now have read-write permissions for root and the audio group (mode 0660). Now you can set CPU latency as low as you like. Bear in mind that setting it to 0 will put your CPU's in an always-on state which wil run them hotter. So be prepared for some extra fan noise. | And ''/dev/cpu_dma_latency'' should now have read-write permissions for root and the audio group (mode 0660). Now you can set CPU latency as low as you like. Bear in mind that setting it to 0 will put your CPU's in an always-on state which wil run them hotter. So be prepared for some extra fan noise. |
| | |
| | === USB autosuspend === |
| | When using an USB audio interface it is recommended to disable the power management of the USB subsystem. This way your USB audio interface won't be disconnected when the kernel thinks it is in an idle state. Disabling the power management can be done by adding the following kernel parameter to your the ''GRUB_CMDLINE_LINUX_DEFAULT'' line in your GRUB configuration: |
| | usbcore.autosuspend=-1 |
| | |
| | And then run ''sudo update-grub''. After a reboot this setting will then be picked up. To activate the setting immediately use the following command: |
| | echo "-1" | sudo tee /sys/module/usbcore/parameters/autosuspend |
| | |
| ==== Filesystems ==== | ==== Filesystems ==== |
| |
| ==== LatencyTOP ==== | ==== LatencyTOP ==== |
| |
| 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. | [[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'': |