What buffersize do you use?
“ALSA I/O error” could also mean a lot of consecutive dropouts (xruns).
What buffersize do you use?
“ALSA I/O error” could also mean a lot of consecutive dropouts (xruns).
288, 2 periods/buffer. long proven as failsafe so far…
Download https://ardour.org/files/adevices.sh
Please run Ardour with both 8.6 and 8.7. While each version is running (if possible), run adevices.sh and then paste the output
8.6
========================================
Part I: ALSA
Advanced Linux Sound Architecture Driver Version k6.6.48-rt40-arch1-2-rt-lts.
Card 0 (SB):
-
Playback Device 0 (ALC889 Analog):
- Subdevice 0 (hw:SB,0,0):
closed
-
Playback Device 1 (ALC889 Digital):
- Subdevice 0 (hw:SB,1,0):
closed
-
Recording Device 0 (ALC889 Analog):
- Subdevice 0 (hw:SB,0,0):
closed
-
Recording Device 2 (ALC889 Alt Analog):
-
Subdevice 0 (hw:SB,2,0):
closed
-
Subdevice 1 (hw:SB,2,1):
closed
Card 1 (HDMI):
- Playback Device 3 (HDMI 0):
- Subdevice 0 (hw:HDMI,3,0):
closed
Card 2 (Driv):
-
Playback Device 0 (USB Audio):
- Subdevice 0 (hw:Driv,0,0):
closed
-
Recording Device 0 (USB Audio):
- Subdevice 0 (hw:Driv,0,0):
closed
Card 3 (US2400):
Card 4 (AudioFire12):
-
Playback Device 0 (AudioFire12 PCM):
- Subdevice 0 (hw:AudioFire12,0,0):
used by: ArdourGUI (PID 3820)
access: MMAP_INTERLEAVED
format: S32_LE
subformat: STD
channels: 12
rate: 48000 (48000/1)
period_size: 288
buffer_size: 576
-
Recording Device 0 (AudioFire12 PCM):
- Subdevice 0 (hw:AudioFire12,0,0):
used by: ArdourGUI (PID 3820)
access: MMAP_INTERLEAVED
format: S32_LE
subformat: STD
channels: 12
rate: 48000 (48000/1)
period_size: 288
buffer_size: 576
========================================
Part II: jack/pipewire
jackdmp version 1.9.22 tmpdir /dev/shm protocol 9
8.7
========================================
Part I: ALSA
Advanced Linux Sound Architecture Driver Version k6.6.48-rt40-arch1-2-rt-lts.
Card 0 (SB):
* Playback Device 0 (ALC889 Analog):
- Subdevice 0 (hw:SB,0,0):
closed
* Playback Device 1 (ALC889 Digital):
- Subdevice 0 (hw:SB,1,0):
closed
* Recording Device 0 (ALC889 Analog):
- Subdevice 0 (hw:SB,0,0):
closed
* Recording Device 2 (ALC889 Alt Analog):
- Subdevice 0 (hw:SB,2,0):
closed
- Subdevice 1 (hw:SB,2,1):
closed
Card 1 (HDMI):
* Playback Device 3 (HDMI 0):
- Subdevice 0 (hw:HDMI,3,0):
closed
Card 2 (Driv):
* Playback Device 0 (USB Audio):
- Subdevice 0 (hw:Driv,0,0):
closed
* Recording Device 0 (USB Audio):
- Subdevice 0 (hw:Driv,0,0):
closed
Card 3 (US2400):
Card 4 (AudioFire12):
* Playback Device 0 (AudioFire12 PCM):
- Subdevice 0 (hw:AudioFire12,0,0):
used by: ArdourGUI (PID 4242)
access: MMAP_INTERLEAVED
format: S32_LE
subformat: STD
channels: 12
rate: 48000 (48000/1)
period_size: 288
buffer_size: 576
* Recording Device 0 (AudioFire12 PCM):
- Subdevice 0 (hw:AudioFire12,0,0):
used by: ArdourGUI (PID 4242)
access: MMAP_INTERLEAVED
format: S32_LE
subformat: STD
channels: 12
rate: 48000 (48000/1)
period_size: 288
buffer_size: 576
========================================
Part II: jack/pipewire
jackdmp version 1.9.22 tmpdir /dev/shm protocol 9
OK, that certainly clarifies that the hardware settings in use are the same for both versions.
How does the DSP load (upper right corner of main window) compare between versions?
with the actual session i’m doing these tests:
8.6 - around 10%
8.7 - currently 0% (audio is off, attempts to start it via audio/midi setup keep introducing the “The audio backend was shutdown because: ALSA I/O error.” tab
Is there anything in Menu > Window > Log?
Does using a larger buffersize help?
hmm, just found this robin’s comment here:
tried it and it seems to solve the problem. don’t know what exactly does it mean tho.
the log now says:
024-09-27T00:17:06 [INFO]: Scanning folders for bundled LV2s: /opt/Ardour-8.7.38/lib/LV2
2024-09-27T00:17:10 [WARNING]: LV2<http://ssj71.github.io/infamousPlugins/plugs.html#envfollowerCV>: Port 2 ('CV Out') has unsupported data type.
2024-09-27T00:17:11 [INFO]: xjadeo version: 0.8.14
2024-09-27T00:17:12 [INFO]: harvid version: 901
2024-09-27T00:17:13 [INFO]: Loading menus from /opt/Ardour-8.7.38/etc/ardour.menus
2024-09-27T00:17:13 [INFO]: Cannot set I/O Priority for disk read/write thread
2024-09-27T00:17:13 [ERROR]: No MCP device info files found using /home/tomas/.config/ardour8/us2400:/opt/Ardour-8.7.38/share/us2400
2024-09-27T00:17:13 [INFO]: Loading user ui scripts file /home/tomas/.config/ardour8/ui_scripts
2024-09-27T00:17:14 [INFO]: Loading plugin order file /home/tomas/.config/ardour8/plugin_metadata/plugin_order
2024-09-27T00:17:14 [INFO]: Loading history from /home/tomas/data/audio_projects/hugo_a_zoe/all_watched_over/all_watched_over.history
could the 2024-09-27T00:17:13 [INFO]: Cannot set I/O Priority for disk read/write thread line be related?
No. In the past Ardour never tried to raise I/O priority, so if that fails it’s just like old times.
However the threading is apparently a problem. The new I/O threads (when used) have an elevated scheduler priority, but still it should not be able to interfere with Audio I/O.
Possibly system or kernel specific. Thanks for bringing this issue to our attention, time to investigate further. Would you be available and willing to help with that?
sure. thanks to you too! now i have to get some sleep, tomorrow we can continue troubleshooting
OK. when you wake up there should be a nightly build of Ardour 8.7-40 (or later).
Please run it from a terminal and using an environment variable as such
ARDOUR_IO_SCHED=1 Ardour8
Then in Preferences > Performance > Disk-I/O … Disk I/O configure “all but two”.
If there are still dropouts, please try
ARDOUR_IO_SCHED=0 Ardour8
Thanks in advance.
PS. if others want to chime in and post results, those are welcome as well.
tech details:
By default Ardour uses SCHED_RR for I/O thread with a priority of 70.
Audio thread use SCHED_FIFO with a priority of 80.
The first test ARDOUR_IO_SCHED=1 also makes I/O threads use SCHED_FIFO.
and the 2nd test ARDOUR_IO_SCHED=0` changes them to use default low priority SCHED_OTHER.
I tested this here on my system and DSP load does not increase (Linux 6.1.0-0.deb11.21-amd64 #1 SMP PREEMPT_DYNAMIC)
ok. testing nightly 8.7.42 with Disk I/O threads set to “all but two processor”. amd64 8core, arch linux, 6.10.2-rt kernel, bare alsa (no jack etc.):
Thanks for testing!
and when you set parallel disk I/O to “1 processor” DSP load goes back down to 10% (like 8.6)?
yes, exactly. had to restart ardour ofc, after that, the load for the same session is roughly where it used to be with 8.6
Interesting. I don’t understand how a low priority I/O thread can interfere with realtime audio I/O. It is certainly not the case here on 2 machines that I tried.
Just to be certain: your user has permissions to set realtime scheduling up to a priority of at least 80?
ulimit -r
should ideally return 95.
and Ardor > Menu > Window > Log does not show a warning
“AlsaAudioBackend: cannot acquire realtime permissions.”
[tomas@archstudio ~]$ ulimit -r
99
no such warning in ardour log
just confirming the issue was corrected in 8.10, everythig works fine now even with more processors assigned to parallel disk I/O.
thank you!
This topic was automatically closed 91 days after the last reply. New replies are no longer allowed.