On Fri, Jun 07, 2013 at 04:06:15PM +0200, pet...@schwertfisch.de wrote:
> 
> In what way will audio be unreliable (or non-deterministic) when
> inteldrm is enabled?

While the CPU is running in kernel code (eg, syscall), programs
cannot submit audio data before the syscall completes (or releases
the CPU by sleeping). If the device has no data to play, it inserts
a block of silence which results in "stuttering".

On the contrary, any program running in user-mode, can be preempted
by the audio program, which can manage to submit audio data in time
to the device.

The X server, when using the inteldrm driver, involves a lot the
kernel to run hardware accelerated graphic operations. This
prevents other programs to get the CPU and to submit audio data in
time. On the other hand, X, when using the vesa driver, maps the
video memory in its address space during initialization; then it
access it without involving the kernel, allowing audio programs to
run concurently.

The symptom is not specific to the inteldrm driver, but to any
cpu-intensive kernel code or to programs using (abusing) too much
kernel services. The most notable subsystems hurting audio are uvm
and kernel crypto.

This holds for SP kernels. The problem becomes agravated by MP
kernels because interrupts of the audio device may be missed while
programs on a secondary cpu are running in kernel mode.

-- Alexandre

Reply via email to