Hi Maxime, Thanks for your comment, please see below. > -----Original Message----- > From: Maxime Coquelin [mailto:maxime.coque...@redhat.com] > Sent: Wednesday, June 19, 2019 12:10 PM > To: Noa Ezra <n...@mellanox.com> > Cc: Matan Azrad <ma...@mellanox.com>; dev@dpdk.org > Subject: Re: [PATCH 2/2] net/vhost: support mrg-rxbuf disabling > > Hi Noa, > > On 6/19/19 8:13 AM, Noa Ezra wrote: > > Rx mergeable buffers is a virtio feature that allows chaining of > > multiple virtio descriptors to handle large packet size. > > This behavior is supported and enabled by default, however in case the > > user knows that rx mergeable buffers are not needed, he can disable > > the feature. > > The user should also set mrg_rxbuf=off in virtual machine's xml. > > I'm not sure to understand why it is needed, as the vhost-user library > supports the feature, it's better to let it being advertised. > > As you say, it is up to the user to disable it in the VM's XML. > Done this way, the feature won't be negotiated. > I agree with you, I'll remove this patch from the series.
> Moreover, the proposal deadline for v19.08 is over by more than 2 weeks. I'm sorry, the mail was sent a long time but didn't get to the mailing list. In any case, I'll prepare a new patch with only TSO (the first patch) and send it to the next release. > Maxime > > > Signed-off-by: Noa Ezra <n...@mellanox.com> > > Reviewed-by: Matan Azrad <ma...@mellanox.com> > > --- > > doc/guides/nics/vhost.rst | 5 +++++ > > drivers/net/vhost/rte_eth_vhost.c | 17 ++++++++++++++++- > > 2 files changed, 21 insertions(+), 1 deletion(-) > > > > diff --git a/doc/guides/nics/vhost.rst b/doc/guides/nics/vhost.rst > > index 8cfda4d..2a455b5 100644 > > --- a/doc/guides/nics/vhost.rst > > +++ b/doc/guides/nics/vhost.rst > > @@ -81,6 +81,11 @@ The user can specify below arguments in `--vdev` > option. > > It is used to disable tso support in vhost library. > > (Default: 1 (enabled)) > > > > +#. ``mrg-rxbuf``: > > + > > + It is used to disable mrg rxbuf support in vhost library. > > + (Default: 1 (enabled)) > > + > > Vhost PMD event handling > > ------------------------ > > > > diff --git a/drivers/net/vhost/rte_eth_vhost.c > > b/drivers/net/vhost/rte_eth_vhost.c > > index a38c235..9a54020 100644 > > --- a/drivers/net/vhost/rte_eth_vhost.c > > +++ b/drivers/net/vhost/rte_eth_vhost.c > > @@ -32,6 +32,7 @@ > > #define ETH_VHOST_IOMMU_SUPPORT "iommu-support" > > #define ETH_VHOST_POSTCOPY_SUPPORT "postcopy-support" > > #define ETH_VHOST_VIRTIO_NET_F_HOST_TSO "tso" > > +#define ETH_VHOST_VIRTIO_NET_F_MRG_RXBUF "mrg-rxbuf" > > #define VHOST_MAX_PKT_BURST 32 > > > > static const char *valid_arguments[] = { @@ -42,6 +43,7 @@ > > ETH_VHOST_IOMMU_SUPPORT, > > ETH_VHOST_POSTCOPY_SUPPORT, > > ETH_VHOST_VIRTIO_NET_F_HOST_TSO, > > + ETH_VHOST_VIRTIO_NET_F_MRG_RXBUF, > > NULL > > }; > > > > @@ -1348,6 +1350,7 @@ struct vhost_xstats_name_off { > > int iommu_support = 0; > > int postcopy_support = 0; > > int tso = 1; > > + int mrg_rxbuf = 1; > > struct rte_eth_dev *eth_dev; > > const char *name = rte_vdev_device_name(dev); > > > > @@ -1442,6 +1445,17 @@ struct vhost_xstats_name_off { > > } > > } > > > > + if (rte_kvargs_count(kvlist, > ETH_VHOST_VIRTIO_NET_F_MRG_RXBUF) == 1) { > > + ret = rte_kvargs_process(kvlist, > > + ETH_VHOST_VIRTIO_NET_F_MRG_RXBUF, > > + &open_int, &mrg_rxbuf); > > + if (ret < 0) > > + goto out_free; > > + > > + if (mrg_rxbuf == 0) > > + disable_flags |= (1ULL << > VIRTIO_NET_F_MRG_RXBUF); > > + } > > + > > if (dev->device.numa_node == SOCKET_ID_ANY) > > dev->device.numa_node = rte_socket_id(); > > > > @@ -1494,7 +1508,8 @@ struct vhost_xstats_name_off { > > "dequeue-zero-copy=<0|1> " > > "iommu-support=<0|1> " > > "postcopy-support=<0|1> " > > - "tso=<0|1>"); > > + "tso=<0|1> " > > + "mrg-rxbuf=<0|1>"); > > > > RTE_INIT(vhost_init_log) > > { > >