[PATCH v5] net/vhost: support asynchronous data path

Maxime Coquelin maxime.coquelin at redhat.com
Tue Oct 25 18:04:48 CEST 2022



On 10/25/22 17:44, Bruce Richardson wrote:
> On Tue, Oct 25, 2022 at 05:33:31PM +0200, Maxime Coquelin wrote:
>>
>>
>> On 10/25/22 11:15, Hu, Jiayu wrote:
> 
>>>> I think that for Vhost PMD, the Virtio completions should either be
>>>> performed by DMA engine or by a dedicated thread.
>>>
>>> We cannot depend on DMA engine to do completion, as there is no
>>> ordering guarantee on the HW. For example, given the DMA engine
>>> issues two updates on the used ring's index, it is possible that the second
>>> write completes before the first one.
>>
>> I'm not sure for Intel hardware, but other vendors may offer ordering
>> guarantees, it should be exposed as a capability of the DMA device. If
>> the DMA device offers this capability, it could be used for Vhost.
>>
> 
> While I haven't been following this discussion, this particular comment
> caught my eye.
> 
> For jobs submitted via a single dmadev device, the "FENCE" flag is provided
> as part of the dmadev API[1]. Obviously, if the writes come from different
> dmadevs, then things are rather more complicated.

Thanks for the clarification Bruce.

In the Vhost PMD case, there is a 1:1 mapping between the virtqueue and
the DMA channel, so we should be fine.

Regards,
Maxime

> /Bruce
> 
> 
> [1] https://doc.dpdk.org/api/rte__dmadev_8h.html#a3375e7b956b305505073c4ff035afe2f
> 



More information about the dev mailing list