Thread (87 messages) 87 messages, 6 authors, 2023-08-10

Re: [PATCH vhost v11 05/10] virtio_ring: introduce virtqueue_dma_dev()

From: Xuan Zhuo <xuanzhuo@linux.alibaba.com>
Date: 2023-07-31 02:46:29
Also in: bpf, virtualization

On Fri, 28 Jul 2023 08:03:05 -0700, Jakub Kicinski [off-list ref] wrote:
On Fri, 28 Jul 2023 14:02:33 +0800 Xuan Zhuo wrote:
quoted
Hi guys, this topic is stuck again. How should I proceed with this work?

Let me briefly summarize:
1. The problem with adding virtio_dma_{map, sync} api is that, for AF_XDP and
the driver layer, we need to support these APIs. The current conclusion of
AF_XDP is no.

2. Set dma_set_mask_and_coherent, then we can use DMA API uniformly inside
driver. This idea seems to be inconsistent with the framework design of DMA. The
conclusion is no.

3. We noticed that if the virtio device supports VIRTIO_F_ACCESS_PLATFORM, it
uses DMA API. And this type of device is the future direction, so we only
support DMA premapped for this type of virtio device. The problem with this
solution is that virtqueue_dma_dev() only returns dev in some cases, because
VIRTIO_F_ACCESS_PLATFORM is supported in such cases. Otherwise NULL is returned.
This option is currently NO.

So I'm wondering what should I do, from a DMA point of view, is there any
solution in case of using DMA API?
I'd step back and ask you why do you want to use AF_XDP with virtio.
Or do you mean virtio vs virtio-net?
All I did with virtio was to get the virtio-net to support AF_XDP.
Instead of bifurcating one virtio instance into different queues
That is not the key of our problem.

Even though we have a device that only works with AF_XDP,
it still has this DMA issues.

I think the current way(v11, v12) is a good solution, the only problem is that
if the device is old, we can not do dma with DMA APIs. Then we will not suppot
AF_XDP. I don't think it matters. But Christoph was a little worried.

Thanks.

why
not create a separate virtio instance?


Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help