[dpdk-dev] [PATCH 2/2] net/vhost: support mrg-rxbuf disabling
Maxime Coquelin
maxime.coquelin at redhat.com
Thu Jun 20 09:27:06 CEST 2019
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.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.
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 <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