Hi,

my problem: Playback is interrupted (only short pieces of sound are 
played/repeated) or I've got no sound at all; applications log message: 
"underrun occurred". With Windows everything is fine.

The problem exists with every application that I use: mpv ("[ao/alsa] Device 
underrun detected."), games ("ALSA lib 
/var/tmp/portage/media-libs/alsa-lib-1.2.3.2/work/alsa-lib-1.2.3.2/src/pcm/pcm.c:8545:(snd_pcm_recover)
 underrun occurred"), ...

My system: Asus Xonar D2X on a Gigabyte GA-X79-UD3 mainboard. I don't know if 
this is important, but the sound card shares an interrupt with a USB controller 
and a DVB card (saa7146).

What I have already found out:
- It seems, that the sound card doesn't send any interrupts (at least I suppose 
that the sound card is supposed to do this?). As I've already mentioned, the 
sound card shares an interrupt with other devices, and the more interrupts are 
generated by those other devices, the more fluent plays the sound. If I disable 
the other devices (no more interrupts), mpv doesn't play a single note: Even 
the timer doesn't increase (stays at, for example, "A: 00:00:00 / 00:05:11 
(0%)"). However, as soon as I generate interrupts again (move the mouse that is 
connected to the USB controller, use the DVB card), the sound is fluent. When 
the other devices are disabled, I can see that the sound card doesn't generate 
any interrupts at all.
- I always thought that this behavior was a bug in my asound.rc file, however, 
now I've realized that this behavior is unrelated to my configuration: The 
problem persists when I remove the asound.rc.
- I'm running Gentoo Linux, however, the problem also exists with a live Linux 
(grml 2020.06).

Some parts of my kernel config:
CONFIG_NO_HZ_COMMON=y
# CONFIG_HZ_PERIODIC is not set
CONFIG_NO_HZ_IDLE=y
# CONFIG_NO_HZ_FULL is not set
# CONFIG_NO_HZ is not set
# CONFIG_HZ_100 is not set
# CONFIG_HZ_250 is not set
# CONFIG_HZ_300 is not set
CONFIG_HZ_1000=y
CONFIG_HZ=1000
...
# CONFIG_PREEMPT_NONE is not set
CONFIG_PREEMPT_VOLUNTARY=y
# CONFIG_PREEMPT is not set
CONFIG_PREEMPT_NOTIFIERS=y

Output from alsa-info.sh: 
http://alsa-project.org/db/?f=241daa9b8e9547bd3c9d52e48faff98b5bf6cf13

/proc/interrupts: https://pastebin.com/wkfF7pEA

$ cat /proc/asound/card0/pcm0p/sub0/* # while playing a song with mpv
access: MMAP_INTERLEAVED
format: S32_LE
subformat: STD
channels: 2
rate: 48000 (48000/1)
period_size: 1024
buffer_size: 16384
card: 0
device: 0
subdevice: 0
stream: PLAYBACK
id: Multichannel
name: Multichannel
subname: subdevice #0
class: 0
subclass: 0
subdevices_count: 1
subdevices_avail: 0
2048
65536
state: RUNNING
owner_pid   : 12516
trigger_time: 4010.691643716
tstamp      : 4056.570447427
delay       : -252692
avail       : 269076
avail_max   : 269076
-----
hw_ptr      : 252692
appl_ptr    : 0
tstamp_mode: ENABLE
period_step: 1
avail_min: 1024
start_threshold: 1
stop_threshold: 4611686018427387904
silence_threshold: 0
silence_size: 4611686018427387904
boundary: 4611686018427387904


I'm very grateful for any help/ideas/thoughts, thanks in advance,
Matthias


_______________________________________________
Alsa-user mailing list
Alsa-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/alsa-user

Reply via email to