Hi Maxime, > -----Original Message----- > From: Maxime Coquelin [mailto:maxime.coque...@redhat.com] > Sent: Thursday, January 18, 2018 5:04 PM > To: Yang, Zhiyong <zhiyong.y...@intel.com>; dev@dpdk.org; > y...@fridaylinux.org > Cc: Wang, Wei W <wei.w.w...@intel.com>; Tan, Jianfeng > <jianfeng....@intel.com> > Subject: Re: [PATCH 00/11] net/vhostpci: A new vhostpci PMD supporting > VM2VM scenario > > Hi Zhiyong, > > Sorry for the late reply, please find my comments inline: > > On 01/11/2018 12:13 PM, Yang, Zhiyong wrote: > > Hi Maxime, all, > > > > ... > > >>> Zhiyong Yang (11): > >>> drivers/net: add vhostpci PMD base files > >>> net/vhostpci: public header files > >>> net/vhostpci: add debugging log macros > >>> net/vhostpci: add basic framework > >>> net/vhostpci: add queue setup > >>> net/vhostpci: add support for link status change > >>> net/vhostpci: get remote memory region and vring info > >>> net/vhostpci: add RX function > >>> net/vhostpci: add TX function > >>> net/vhostpci: support RX/TX packets statistics > >>> net/vhostpci: update release note > >>> > >>> MAINTAINERS | 6 + > >>> config/common_base | 9 + > >>> config/common_linuxapp | 1 + > >>> doc/guides/rel_notes/release_18_02.rst | 6 + > >>> drivers/net/Makefile | 1 + > >>> drivers/net/vhostpci/Makefile | 54 + > >>> drivers/net/vhostpci/rte_pmd_vhostpci_version.map | 3 + > >>> drivers/net/vhostpci/vhostpci_ethdev.c | 1521 > >> +++++++++++++++++++++ > >>> drivers/net/vhostpci/vhostpci_ethdev.h | 176 +++ > >>> drivers/net/vhostpci/vhostpci_logs.h | 69 + > >>> drivers/net/vhostpci/vhostpci_net.h | 74 + > >>> drivers/net/vhostpci/vhostpci_pci.c | 334 +++++ > >>> drivers/net/vhostpci/vhostpci_pci.h | 240 ++++ > >>> mk/rte.app.mk | 1 + > >>> 14 files changed, 2495 insertions(+) > >>> create mode 100644 drivers/net/vhostpci/Makefile > >>> create mode 100644 > >> drivers/net/vhostpci/rte_pmd_vhostpci_version.map > >>> create mode 100644 drivers/net/vhostpci/vhostpci_ethdev.c > >>> create mode 100644 drivers/net/vhostpci/vhostpci_ethdev.h > >>> create mode 100644 drivers/net/vhostpci/vhostpci_logs.h > >>> create mode 100644 drivers/net/vhostpci/vhostpci_net.h > >>> create mode 100644 drivers/net/vhostpci/vhostpci_pci.c > >>> create mode 100644 drivers/net/vhostpci/vhostpci_pci.h > >>> > >> > >> Thanks for the RFC. > >> It seems there is a lot of code duplication between this series and > >> libvhost- user. > >> > >> Does the non-RFC would make reuse of libvhost-user? I'm thinking of > >> all the code copied from virtio-net.c for example. > >> > >> If not, I think this is problematic as it will double the maintenance cost. > >> > > > > I'm trying to reuse librte_vhost RX/TX logic and it seems feasible, > > However, I have to expose many internal data structures in librte_vhost > such as virtio_net, vhost_virtqueue , etc to PMD layer. > > I don't really like it, it looks like a layer violation. > > > Since vhostpci PMD is using one virtio pci device (vhostpci device) in > > guest, > Memory allocation and release should be done in driver/net/vhostpci as > virtio PMD does that. > > If you talk about mbuf alloc/release, then Vhost PMD also does it. > So I'm not sure to get the point. > > > Vhostpci and vhost can share struct virtio_net to manage the different > drivers, since they are very similar. > > The features for example zero copy feature, make rarp packets don't need > to be supported for vhostpci, we can always disable them. > > How do you think about the thoughts? > > Why not put vhost-pci wrappers in virtio-net? > Maybe TX/RX functions should be reworked to extract the common bits > between vhost-user and vhost-pci, taking care of not degrading performance > of vhost-user. > > I don't know if this is feasible, what do you think? >
make sense, thanks for your useful suggestions. :) Thanks Zhiyong > Thanks, > Maxime > > thanks > > Zhiyong > > > >> Cheers, > >> Maxime > > > >