[dpdk-dev] [PATCH 2/2] net/vhost: support mrg-rxbuf disabling

Noa Ezra noae at mellanox.com
Thu Jun 20 07:57:43 CEST 2019


Hi Maxime,
Thanks for your comment, please see below.

> -----Original Message-----
> From: Maxime Coquelin [mailto:maxime.coquelin at redhat.com]
> Sent: Wednesday, June 19, 2019 12:10 PM
> To: Noa Ezra <noae at mellanox.com>
> Cc: Matan Azrad <matan at mellanox.com>; dev at 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 <noae at mellanox.com>
> > Reviewed-by: Matan Azrad <matan at 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)
> >   {
> >


More information about the dev mailing list