On Fri, Feb 03, 2023 at 07:04:14PM +0900, Shunsuke Mie wrote: > This patchset introduce a virtio-net EP device function. It provides a > new option to communiate between PCIe host and endpoint over IP. > Advantage of this option is that the driver fully uses a PCIe embedded DMA. > It is used to transport data between virtio ring directly each other. It > can be expected to better throughput. > > To realize the function, this patchset has few changes and introduces a > new APIs to PCI EP framework related to virtio. Furthermore, it device > depends on the some patchtes that is discussing. Those depended patchset > are following: > - [PATCH 1/2] dmaengine: dw-edma: Fix to change for continuous transfer > link: https://lore.kernel.org/dmaengine/20221223022608.550697-1-mie@xxxxxxxxxx/ > - [RFC PATCH 0/3] Deal with alignment restriction on EP side > link: https://lore.kernel.org/linux-pci/20230113090350.1103494-1-mie@xxxxxxxxxx/ > - [RFC PATCH v2 0/7] Introduce a vringh accessor for IO memory > link: https://lore.kernel.org/virtualization/20230202090934.549556-1-mie@xxxxxxxxxx/ > > About this patchset has 4 patches. The first of two patch is little changes > to virtio. The third patch add APIs to easily access virtio data structure > on PCIe Host side memory. The last one introduce a virtio-net EP device > function. Details are in commit respectively. > > Currently those network devices are testd using ping only. I'll add a > result of performance evaluation using iperf and etc to the future version > of this patchset. All this feels like it'd need a virtio spec extension but I'm not 100% sure without spending much more time understanding this. what do you say? > Shunsuke Mie (4): > virtio_pci: add a definition of queue flag in ISR > virtio_ring: remove const from vring getter > PCI: endpoint: Introduce virtio library for EP functions > PCI: endpoint: function: Add EP function driver to provide virtio net > device > > drivers/pci/endpoint/Kconfig | 7 + > drivers/pci/endpoint/Makefile | 1 + > drivers/pci/endpoint/functions/Kconfig | 12 + > drivers/pci/endpoint/functions/Makefile | 1 + > .../pci/endpoint/functions/pci-epf-vnet-ep.c | 343 ++++++++++ > .../pci/endpoint/functions/pci-epf-vnet-rc.c | 635 ++++++++++++++++++ > drivers/pci/endpoint/functions/pci-epf-vnet.c | 387 +++++++++++ > drivers/pci/endpoint/functions/pci-epf-vnet.h | 62 ++ > drivers/pci/endpoint/pci-epf-virtio.c | 113 ++++ > drivers/virtio/virtio_ring.c | 2 +- > include/linux/pci-epf-virtio.h | 25 + > include/linux/virtio.h | 2 +- > include/uapi/linux/virtio_pci.h | 2 + > 13 files changed, 1590 insertions(+), 2 deletions(-) > create mode 100644 drivers/pci/endpoint/functions/pci-epf-vnet-ep.c > create mode 100644 drivers/pci/endpoint/functions/pci-epf-vnet-rc.c > create mode 100644 drivers/pci/endpoint/functions/pci-epf-vnet.c > create mode 100644 drivers/pci/endpoint/functions/pci-epf-vnet.h > create mode 100644 drivers/pci/endpoint/pci-epf-virtio.c > create mode 100644 include/linux/pci-epf-virtio.h > > -- > 2.25.1 _______________________________________________ Virtualization mailing list Virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linuxfoundation.org/mailman/listinfo/virtualization