OK To DMA Directly To Queue Memory?
Probably been discussed before – but – is it ‘OK’ to DMA directly to a Queue? Or is this a no-no?
John W. Reply
Attach Richard Damon
2 days ago
What address would you point the DMA to? The handle points to the control structure, which is opaque to user code. Even if you had the pointers there is no way to indicate that a block of memory is in the process of having data filled, it is either empty, and subject to being written to by someone inserting data, or is full and subject to being read.
I suppose you could copy the queue code and replace the memory copy with an immediate dma transfer that would be “instantaneous” (i.e. all data is sitting in a device buffer, and just using DMA to place it into the queue instead of copying the data from a normal memory buffer.