[dpdk-dev] dmadev discussion summary
fengchengwen
fengchengwen at huawei.com
Sat Jul 3 02:32:16 CEST 2021
On 2021/7/2 22:57, Morten Brørup wrote:
>> In the DPDK framework, many data-plane API names contain queues. e.g.
>> eventdev/crypto..
>> The concept of virt queues has continuity.
>
> I was also wondering about the name "virtual queue".
>
> Usually, something "virtual" would be an abstraction of something physical, e.g. a software layer on top of something physical.
>
> Back in the days, a "DMA channel" used to mean a DMA engine on a CPU. If a CPU had 2 DMA channels, they could both be set up simultaneously.
>
> The current design has the "dmadev" representing a CPU or other chip, which has one or more "HW-queues" representing DMA channels (of the same type), and then "virt-queue" as a software abstraction on top, for using a DMA channel in different ways through individually configured contexts (virt-queues).
>
> It makes sense to me, although I would consider renaming "HW-queue" to "channel" and perhaps "virt-queue" to "queue".
The 'DMA channel' is more used than 'DMA queue', at least google show that there are at least 20+ times more.
It's a good idea build the abstraction layer: queue <> channel <> dma-controller.
In this way, the meaning of each layer is relatively easy to distinguish literally.
will fix in V2
>
> These names are not important to me. You can keep them or change them; I am happy any way.
>
> But the names used for functions, types and parameters need to be cleaned up and match the names used in the documentation. E.g. rte_dmadev_queue_setup() does not set up a queue, it sets up a virt-queue, so that function name needs to be corrected.
>
> Also, the rte_ prefix is missing in a few places, e.g. struct dma_scatterlist and enum dma_address_type. Obviously not important for this high level discussion based on draft source code, but important for the final implementation.
will fix in V2
>
> -Morten
>
More information about the dev
mailing list