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?

Thanks,
Maxime
thanks
Zhiyong
Cheers,
Maxime


Reply via email to