Quantcast
Channel: EngineerZone: Message List
Viewing all articles
Browse latest Browse all 22625

Re: libiio buffering

$
0
0

Hi Rick,

 

The answer depends to the device used and the backend of libiio:

- when using libiio across the network, the call to iio_buffer_push() is blocking;

- when using libiio on the target with an old device (or old driver) that doesn't support the new dma+mmap interface, the call is blocking as well (the data is copied);

- when using libiio on the target with a recent driver, the iio_buffer_push() will just enqueue the buffer and dequeue an empty one. It will block only if you're pushing samples faster than what the hardware outputs. This works the exact same for input buffers and iio_buffer_refill(). The driver has a pool of buffers (4 by default) so it will only block if you're dequeuing the buffers too fast.

 

Right now the kernel allocates the buffers on request; it is not possible to specify a memory region.

Do you have a specific use-case for this?

 

Regards,

-Paul


Viewing all articles
Browse latest Browse all 22625

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>