[dpdk-dev] [PATCH 00/11] net/vhostpci: A new vhostpci PMD supporting VM2VM scenario

Maxime Coquelin maxime.coquelin at redhat.com
Thu Jan 18 10:04:15 CET 2018


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
> 
> 


More information about the dev mailing list