Comment 94 for bug 996906

Revision history for this message
In , Rkfg (rkfg) wrote :

Some more info. On my new laptop that also has a VIA sound chipset I managed to greatly leverage the problem by installing the low-latency Ubuntu kernel. I have Ubuntu MATE 14.04 on it so it was effortless. Unfortunately, for (presumably) performance reasons it doesn't have CONFIG_SND_PCM_XRUN_DEBUG enabled so I can't see if it also misses interrupts. However, on the default stock kernel which has this option it misses interrupts indeed. I tried various position_fix and enable_msi values and nothing helped. I had underruns in the log while doing usual things like opening sites, now on the low-latency kernel it's all good even on PA's timer-based scheduling.

I can only guess but it could be because the CPU has only two cores and sometimes it can't schedule an interrupt in time. The low-latency kernel has 1000 Hz timer compared to 250 Hz in the default one. It also has various NO_HZ_* options enabled. I'll try two options on Monday with my own kernel for Debian: one would be using the BFS scheduler and another one will feature CONFIG_NO_HZ_FULL_ALL and alike options which are disabled when BFS is used. I'll check if either of them will help with the missed interrupts.

The problem as I see it is that my work PC and this laptop isn't powerful enough to server IRQs in time. They both have VIA sound although a bit different models and 2 core CPUs. My home PC has 4 cores that are also more powerful. I tried to output some sound via PA to its Realtek ALC889 card and enabled xrun_debug. There were no messages about lost interrupts and I'm using the same kernel that's used on the work PC. So the different behavior is either because of different codecs/chipsets or CPUs.