Ping for review.
>Hi Bruce,
>
>>On Sat, May 24, 2025 at 02:43:10PM +0530, [email protected] wrote:
>>> From: Pavan Nikhilesh <[email protected]>
>>>
>>> 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.