openvortex-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Openvortex-dev] Scatter Gather.


From: Manuel Jander
Subject: [Openvortex-dev] Scatter Gather.
Date: Fri, 27 Feb 2004 16:15:18 -0400

Hi,

The merge into kernel 2.6 is making progress, but it involves some more
work as expected, because of some requirements from the ALSA team.

Apart from that, finally i decided that using a Scatter Gather buffer
instead of a linear buffer (as currently) would better for the Aureal
driver, because:

- Some people with less than 256MiB of RAM are having buffer allocation
trouble. Using Non-linear buffers should relieve that.

- Its not that much overhead after all, and the hardware support it, so
lets make use of it :D

The Changes are nearly complete, and a new release will be out very
soon. I encountered some problems, but i still need to decide the best
solution (there is a trade-off):

The problem is that a DMA transfer block can't cross a page boundary (4
KiB). If it does, we get random noise for the extend of that
overlapping. 
ALSA does not ensure in any way that periods map to pages, nor to DMA
chunks.

Solution 1: Restrict the accepted period sizes, so that page crossing
never happens.
Caveat 1: Some programs will not get the period size they want and give
up working.

Solution 2: Somehow subdivide periods that cross a page and make two DMA
transfers instead of one, to avoid the page crossing.
Caveat 2: The implementation would be somewhat complex, and i fear that
under heavy system load there are more chances for artifacts (crackles).

Any comments are gladly welcome.

Manuel






reply via email to

[Prev in Thread] Current Thread [Next in Thread]