[dpdk-stable] [PATCH 18.11] vhost: remove zero-copy and client mode restriction

Kevin Traynor ktraynor at redhat.com
Thu Jul 2 13:57:33 CEST 2020


On 01/07/2020 16:09, Luca Boccassi wrote:
> On Wed, 2020-07-01 at 14:52 +0100, Kevin Traynor wrote:
>> Commits [1] were backported as fixes from the latest DPDK release
>> to the stable branches. They are detecting if vhost-user client and
>> zero-copy are being used together. As this can be problematic in
>> some cases, this combination was being rejected by those patches.
>>
>> It might be ok to deprecate this combination in latest DPDK,
>> but for stable releases we should not remove the functionality
>> as it may be in use with earlier releases from the same stable branch.
>>
>> In fact, we know that this functionality is used at least in OVS in
>> multiple releases/active branches.
>>
>> This patch removes the restriction of zero-copy and client mode
>> and adds a warning for the user.
>>
>> [1]
>> commit 81e025d7ed6a
>> ("vhost: prevent zero-copy with incompatible client mode")
>>
>> commit 0309429b1988
>> ("vhost: fix zero-copy server mode")
>>
>> Signed-off-by: Kevin Traynor <ktraynor at redhat.com>
>> ---
>> Cc: xuan.ding at intel.com
>> ---
>>  lib/librte_vhost/socket.c | 10 ++++------
>>  1 file changed, 4 insertions(+), 6 deletions(-)
>>
>> diff --git a/lib/librte_vhost/socket.c b/lib/librte_vhost/socket.c
>> index 4819d31737..6f7142be23 100644
>> --- a/lib/librte_vhost/socket.c
>> +++ b/lib/librte_vhost/socket.c
>> @@ -891,10 +891,8 @@ rte_vhost_driver_register(const char *path, uint64_t flags)
>>  	 */
>>  	if (vsocket->dequeue_zero_copy) {
>> -		if ((flags & RTE_VHOST_USER_CLIENT) != 0) {
>> -			RTE_LOG(ERR, VHOST_CONFIG,
>> -			"error: zero copy is incompatible with vhost client mode\n");
>> -			ret = -1;
>> -			goto out_mutex;
>> -		}
>> +		if ((flags & RTE_VHOST_USER_CLIENT) != 0)
>> +			RTE_LOG(WARNING, VHOST_CONFIG,
>> +			"zero copy may be incompatible with vhost client mode\n");
>> +
>>  		vsocket->supported_features &= ~(1ULL << VIRTIO_F_IN_ORDER);
>>  		vsocket->features &= ~(1ULL << VIRTIO_F_IN_ORDER);
> 
> Acked-by: Luca Boccassi <bluca at debian.org>
> 

Thanks Luca, added some reported-by info and applied.



More information about the stable mailing list