lkml.org 
[lkml]   [1999]   [Jul]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Subjectprogress with low-latency audio i/o: mmap
Date
From
i just did some hacks to ALSA to allow mmap() via the native
interface. there's a few more details to add, but on top of this new
interface, i was able to:

create a SCHED_FIFO task that uses a 2.6ms fragment size (though it
doesn't actually use "fragments" per se) and records (not to disk,
just to RAM) with *zero* dropouts for 16000 fragments in the face of a
system load of 3.8 consisting of:

x11perf -all &
while [ true ] ; do cp /boot/vmlinuz /usr/local ; done &
while [ true ] ; done cat /proc/interrupts ; done &

the zero dropout rate is completely repeatable.

this is on a dual CPU (PII-450) system, so its not a totally fair
comparison, but given the load level, I think this is a fairly
reasonable demonstration that we don't *need* RTL to make things work
:) That doesn't mean that RTL wouldn't be a good thing. this is also
under 2.2.7, so it doesn't have the benefits of any of Ingo's
scheduler work that is in 2.2.10 and 2.3.?.

Note that the task does nothing but busy wait on the DAC buffer;
however, it does this for 2.6ms at a time, providing lots of time for
potential manipulation of the previous buffer ...

I also tried using a 1.3ms fragment size, but this is less reliable
(though probably not unusable).

Unlike Ove's description of doing this with the ess137[01], I only
write to the DAC buffer at the fragment boundaries, which may help
preserve a little bit of bus bandwidth (or it might not).

--p

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 13:53    [W:0.065 / U:0.500 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site