On Fri, Mar 10, 2023 at 5:06 PM Michael S. Tsirkin <mst@xxxxxxxxxx> wrote: > > On Wed, Mar 08, 2023 at 02:44:31PM +0800, Xuan Zhuo wrote: > > XDP socket(AF_XDP) is an excellent bypass kernel network framework. The zero > > copy feature of xsk (XDP socket) needs to be supported by the driver. The > > performance of zero copy is very good. > > > > ENV: Qemu with vhost. > > > > vhost cpu | Guest APP CPU |Guest Softirq CPU | PPS > > -----------------------------|---------------|------------------|------------ > > xmit by sockperf: 90% | 100% | | 318967 > > xmit by xsk: 100% | 30% | 33% | 1192064 > > recv by sockperf: 100% | 68% | 100% | 692288 > > recv by xsk: 100% | 33% | 43% | 771670 > > > > Before achieving the function of Virtio-Net, we also have to let virtio core > > support these features: > > > > 1. virtio core support premapped > > 2. virtio core support reset per-queue > > 3. introduce DMA APIs to virtio core > > > > Please review. > > > Jason can I get some acks on this? In my TODO list, I will do it next week. Thanks > > > Thanks. > > > > v2: > > 1. based on sgs[0]->dma_address to judgment is premapped > > 2. based on extra.addr to judgment to do unmap for no-indirect desc > > 3. based on indir_desc to judgment to do unmap for indirect desc > > 4. rename virtqueue_get_dma_dev to virtqueue_dma_dev > > > > v1: > > 1. expose dma device. NO introduce the api for dma and sync > > 2. split some commit for review. > > > > Xuan Zhuo (12): > > virtio_ring: split: separate dma codes > > virtio_ring: packed: separate dma codes > > virtio_ring: packed-indirect: separate dma codes > > virtio_ring: split: support premapped > > virtio_ring: packed: support premapped > > virtio_ring: split-indirect: support premapped > > virtio_ring: packed-indirect: support premapped > > virtio_ring: update document for virtqueue_add_* > > virtio_ring: introduce virtqueue_dma_dev() > > virtio_ring: correct the expression of the description of > > virtqueue_resize() > > virtio_ring: separate the logic of reset/enable from virtqueue_resize > > virtio_ring: introduce virtqueue_reset() > > > > drivers/virtio/virtio.c | 6 + > > drivers/virtio/virtio_ring.c | 354 +++++++++++++++++++++++++---------- > > include/linux/virtio.h | 4 + > > 3 files changed, 260 insertions(+), 104 deletions(-) > > > > -- > > 2.32.0.3.g01195cf9f > _______________________________________________ Virtualization mailing list Virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linuxfoundation.org/mailman/listinfo/virtualization