> 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.