I have a C++ audio application that plays back audio data on the sound card, Digigram VX882e. https://www.digigram.com/support/vx882e-support/
Nice to see those cards still being used. I was employee #37 back in 1997 :-)
The application runs on HPE ProLiant DL380 Gen9 Server. HPE ProLiant DL380 Gen9 Server
It has worked well under RHEL 7 (kernel 3.10) and RHEL 8 (kernel 4.x). Asthe OS is upgraded to RHEL 9 (kernel 5.14), there is an buffer underrun. When investigating the issue, I run “speaker-test” utility. It fails with the error below. I'm just wonder if this has something to do with the changes in ALSA driver from kernel 4.x to kernel 5.14? If not, what could cause the buffer underrun issue?
These kernels are rather old and usually contain lots of backports, it'll be difficult to figure out what change caused a regression.
If you can try with unmodified mainline kernels, you may be able to use git bisect to find out at what point things started to go wrong.
Stream parameters are 48000Hz, S16_LE, 2 channels
Using 16 octaves of pink noise
Rate set to 48000Hz (requested 48000Hz)
Buffer size range from 128 to 8192
Period size range from 64 to 4096
Using max buffer size 8192
Periods = 4
was set period_size = 2048
was set buffer_size = 8192
that's 10.66ms per period, that's not unusual or extreme. you can also try to increase this to see at what point the xrun disappears, just to see if more slack to handle deadlines help.