On 6/20/19 7:57 AM, Noa Ezra wrote:
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.

No problem, I just wanted to make you aware I could not take it anyway
in v19.08.

In any case, I'll prepare a new patch with only TSO (the first patch) and send 
it to the next release.

As I replied to Matan, could you add the notice for the TSO disabled by
default in the release not for this release?

Thanks,
Maxime
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)
   {

Reply via email to