From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by dpdk.space (Postfix) with ESMTP id 7D57BA0471 for ; Wed, 19 Jun 2019 11:10:39 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id D11761C2AB; Wed, 19 Jun 2019 11:10:38 +0200 (CEST) Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by dpdk.org (Postfix) with ESMTP id C47731C2A8 for ; Wed, 19 Jun 2019 11:10:36 +0200 (CEST) Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com [10.5.11.22]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 2A5F981E04; Wed, 19 Jun 2019 09:10:26 +0000 (UTC) Received: from [10.36.112.46] (ovpn-112-46.ams2.redhat.com [10.36.112.46]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 4659A10190A8; Wed, 19 Jun 2019 09:10:24 +0000 (UTC) To: Noa Ezra Cc: matan@mellanox.com, dev@dpdk.org References: <1560924825-220648-1-git-send-email-noae@mellanox.com> <1560924825-220648-3-git-send-email-noae@mellanox.com> From: Maxime Coquelin Message-ID: <29a8bedb-2363-d595-001b-577fdfc7318c@redhat.com> Date: Wed, 19 Jun 2019 11:10:22 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.6.1 MIME-Version: 1.0 In-Reply-To: <1560924825-220648-3-git-send-email-noae@mellanox.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.84 on 10.5.11.22 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.25]); Wed, 19 Jun 2019 09:10:26 +0000 (UTC) Subject: Re: [dpdk-dev] [PATCH 2/2] net/vhost: support mrg-rxbuf disabling X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" 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. Moreover, the proposal deadline for v19.08 is over by more than 2 weeks. Maxime > Signed-off-by: Noa Ezra > Reviewed-by: Matan Azrad > --- > 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) > { >