Hi Bruce, 

>On Sat, May 24, 2025 at 02:43:10PM +0530, pbhagavat...@marvell.com wrote:
>> From: Pavan Nikhilesh <pbhagavat...@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.

[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.

Reply via email to