[LAD] memory allocation for the real time thread, opinions wanted

Paul Coccoli pcoccoli at gmail.com
Tue Feb 28 01:01:18 UTC 2012


On Mon, Feb 27, 2012 at 8:04 AM, Fons Adriaensen <fons at linuxaudio.org> wrote:
> On Mon, Feb 27, 2012 at 09:59:19AM +0100, Nick Copeland wrote:
>
>> Both of these methods are affectively the same, what you are trying to do is provide
>> a method that the low prio thread is responsible for both malloc and free.
>
> That's a nice method, it effectively uses the LFQ to 'send back' an item after
> use by the recipient. It depends on the particular implementation of the queue,
> you need one that allows to read one (or more if necessary) items without moving
> the read pointer - that should be done only after the data has been used since
> it signals that the data can be freed.
>
> The alternative is to make this explicit, by having two pairs of indices
> operate on the same buffer:
[SNIP]

Why not just use 2 ringbuffers: one to send pointers to the RT thread,
and a second to send them back to the low prio thread (so it can free
them).  You probably need a semaphore for the return ringbuffer, but
that should be RT-safe.



More information about the Linux-audio-dev mailing list