[EXTERNAL] Re: [25.11 PATCH v3 0/5] Introduce DMA enqueue/dequeue operations

Bruce Richardson bruce.richardson at intel.com
Tue Sep 23 17:05:12 CEST 2025


On Mon, Jun 09, 2025 at 10:03:33AM +0000, Pavan Nikhilesh Bhagavatula wrote:
> Hi Bruce, 
> 
> >On Sat, May 24, 2025 at 02:43:10PM +0530, pbhagavatula at marvell.com wrote:
> >> From: Pavan Nikhilesh <pbhagavatula at marvell.com>
> >>
> >> Introduce DMA enqueue/dequeue operations to the DMA device library.
> >>
> >> Add configuration flags to rte_dma_config instead of boolean for
> >> individual features.
> >>
> >> The enqueue/dequeue operations allow applications to communicate with the
> >> DMA device using the rte_dma_op structure, providing a more flexible and
> >> efficient way to manage DMA operations.
> >>
> >
> >While I have no really strong objections to this addition to the dmadev
> >API, I'd appreciate if you could explain WHY or how this method of working
> >is more efficient in your usecase? When designing the dmadev APIs
> >originally, we looked at using both an enqueue-type API as well as the
> >implemented individual-op-based APIs. IIRC at that time testing showed that
> >using the single ops directly was faster than using the enqueue APIs, so
> >I'm wondering what exactly has changed, or is different about your usecase?
> >
> 
> Here is an example where we see enqueue/dequeue ops to be useful especially when 
> integrating with Graph library.
> 
> We had to write an entire wrapper[1] for tracking sges with the current implementation 
> making our nodes[2] very complex.
> 

Can you explain a bit more here. Why do you need the wrapper rather than
just tracking in a circular ring all the copies offloaded? How does having
an enqueue API make this better? Can you perhaps give a trivial example
showing the difference it makes here? The examples you give below are
rather long to understand quickly.

Thanks,
/Bruce

> [1]https://github.com/MarvellEmbeddedProcessors/dao/blob/dao-devel/lib/common/dao_dma.h
> [2]https://github.com/MarvellEmbeddedProcessors/dao/blob/3f364261de91e355699bd9af20d60ea6459f7d67/lib/virtio_net/virtio_net_deq_ext.c#L51
> 
> >/Bruce
> 
> Thanks,
> Pavan.
> 


More information about the dev mailing list