[ovs-dev] Vhost-user dequeue zero copy removal

Kevin Traynor ktraynor at redhat.com
Wed Jul 1 14:08:50 UTC 2020


On 01/07/2020 13:46, Ilya Maximets wrote:
> On 7/1/20 1:46 PM, Kevin Traynor wrote:
>> On 01/07/2020 11:28, Stokes, Ian wrote:
>>> Hi All,
>>>
>>> While completing validation work for DPDK 18.11.9 and 19.11.3 it was 
>>> found that zero-copy for vhostuserclient devices is no longer possible. 
>>> Please see commit below from 18.11.9 (note this patch is also in DPDK 
>>> 19.11.3)
>>>
>>
>> Thanks catching this in your validation, it almost certainly wouldn't
>> have been caught otherwise.
> 
> Definitely a good catch.  Thanks.
> 
>>
>>>
>>> commit 81e025d7ed6a802845909df6fb90505508dc0fbf
>>> Author: Xuan Ding <xuan.ding at intel.com>
>>> Date:   Wed Apr 29 02:59:46 2020 +0000
>>>
>>>      vhost: prevent zero-copy with incompatible client mode
>>>
>>>      [ upstream commit 715070ea10e6da1169deef2a3ea77ae934b4c333 ]
>>>
>>>      In server mode, virtio-user inits under the assumption that vhost-user
>>>      supports a list of features. However, this could be problematic when
>>>      in_order feature is negotiated but not supported by vhost-user when
>>>      enables dequeue_zero_copy later.
>>>
>>>      Add handling when vhost-user enables dequeue_zero_copy as client.
> 
> IIUC, this patch basically drops the feature for perfectly fine cases
> with VMs.  While it was intended to forbid running zero-copy with virtio-user
> it breaks a different usecase blocking the feature entirely.
> 
> Isn't it an API breakage?  IMHO, it should not have been backported in the
> first place, since dropping the feature is not what usually expected in
> stable releases.  And this must be in release notes anyway.
> 
> I think, the right solution here should be to make a patch to handle specific
> virtio-user case and stop blocking valid cases and release new DPDK stable
> versions for already released ones.
> 
> If it's too hard to make a patch or no-one wants to work on this, just revert
> these changes from stable branches and release a new stable DPDK version
> for both 18.11 and 19.11.  But anyway, regression should be addressed in DPDK
> before 20.11 or it will block OVS upgrade to that version.
> 

It is not in a released 18.11. It was caught by Ian's team as part of
18.11.9-rc testing.

> 
>>>
>>> OVS only supports zero-copy to date as an experimental feature with 
>>> dpdkvhostuserclient port types.
>>>
>>> We were aiming to update the validated DPDK versions as follows and 
>>> recommend them as minimum versions due to the inclusion of CSE fixes.
>>>
>>> OVS 2.11 -> 18.11.6 -> 18.11.9
>>> OVS 2.12 -> 18.11.6 -> 18.11.9
>>> OVS 2.13 -> 19.11.0 -> 19.11.3
>>> OVS Master -> 19.11.0 -> 19.11.3
>>>
>>> However recommending these DPDK version will trigger the dpdk zero copy 
>>> functionality break in OVS.
>>>
>>
>> 18.11.9 is not released yet, so at least for it, I think we could
>> replace that patch(es) with a warning.
>>
>> That is not removing any functionality or causing a regression for users
>> of earlier 18.11.x or OVS 2.11/2.12, but it is letting them know there
>> may be an issue.
> 
> That might be an option.  But we likely need same change on 19.11 that
> will require one more stable release on it.
> 

Sent patches to remove restriction and add warning for 18.11 and 19.11
branches here:
http://inbox.dpdk.org/stable/20200701135250.20262-1-ktraynor@redhat.com/
http://inbox.dpdk.org/stable/20200701135305.20343-1-ktraynor@redhat.com/

If there is a better fix in the future, I can apply it in a future release.

>>
>>         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;
>> +                       RTE_LOG(WARNING, VHOST_CONFIG,
>> +                       "zero copy may be incompatible with vhost client
>> mode\n");
>>                 }
>>
>>> What are peoples thoughts here on how to proceed?
>>> Are people aware if the feature is used in deployments to date? If not, 
>>> as it's experimental is it something that should be removed?
> 
> I don't think that we should remove the feature from OVS since it, IIUC,
> could be enabled back in DPDK.
> 
> 
>>>
>>> I'm aware that there is discussion ongoing about tagging for 2.13.1, 
>>> 2.12.1, 2.11.3 releases, I'm thinking the vhost zero copy issue should 
>>> be resolved within that time frame and before we update the recommended 
>>> DPDK versions.
>>>
>>> BR
>>> Ian
>>>
>>>
>>
> 



More information about the dev mailing list