[dpdk-dev] [PATCH] vchost: Notify application of ownership change

Jan Kiszka jan.kiszka at siemens.com
Wed Aug 12 07:35:52 CEST 2015


On 2015-08-12 05:34, Xie, Huawei wrote:
> On 8/8/2015 1:21 AM, Jan Kiszka wrote:
>> On VHOST_*_RESET_OWNER, we reinitialize the device but without telling
>> the application. That will cause crashes when it continues to invoke
>> vhost services on the device. Fix it by calling the destruction hook if
>> the device is still in use.
>>
>> Signed-off-by: Jan Kiszka <jan.kiszka at siemens.com>
>> ---
>>
>> This is the surprisingly simple answer to my questions in
>> http://thread.gmane.org/gmane.comp.networking.dpdk.devel/22661.
>>
>>  lib/librte_vhost/virtio-net.c | 3 +++
>>  1 file changed, 3 insertions(+)
>>
>> diff --git a/lib/librte_vhost/virtio-net.c b/lib/librte_vhost/virtio-net.c
>> index b520ec5..3c5b5b2 100644
>> --- a/lib/librte_vhost/virtio-net.c
>> +++ b/lib/librte_vhost/virtio-net.c
>> @@ -402,6 +402,9 @@ reset_owner(struct vhost_device_ctx ctx)
>>
>>  	ll_dev = get_config_ll_entry(ctx);
>>
>> +	if ((ll_dev->dev.flags & VIRTIO_DEV_RUNNING))
>> +		notify_ops->destroy_device(&ll_dev->dev);
> 
> To me this patch makes sense here.
> Whether RESET_OWNER is really needed is another question. Whenever the

Is there a better way for the client for telling vhost to stop
delivering, ie. touching the client's memory?

Jan

> vhost itself needs to process the vhost device, we need to notify the
> switch application to remove it from data plane.
>> +
>>  	cleanup_device(&ll_dev->dev);
>>  	init_device(&ll_dev->dev);
>>
> 

-- 
Siemens AG, Corporate Technology, CT RTC ITP SES-DE
Corporate Competence Center Embedded Linux


More information about the dev mailing list