[dpdk-dev] [PATCH 2/2] vhost: start vhost servers once

Charles (Chas) Williams ciwillia at brocade.com
Thu Dec 29 16:58:11 CET 2016


On 12/29/2016 03:52 AM, Yuanhan Liu wrote:
> On Wed, Dec 28, 2016 at 04:10:52PM -0500, Charles (Chas) Williams wrote:
>> Start a vhost server once during devinit instead of during device start
>> and stop.  Some vhost clients, QEMU, don't re-attaching to sockets when
>> the vhost server is stopped and later started.  Preserve existing behavior
>> for vhost clients.
>
> I didn't quite get the idea what you are going to fix.

The issue I am trying to fix is QEMU interaction when DPDK's vhost is
acting as a server to QEMU vhost clients.  If you create a vhost server
device, it doesn't create the actual datagram socket until you call
.dev_start().  If you call .dev_stop() is also deletes those sockets.
For QEMU, this is a problem since QEMU doesn't know how to re-attach to
datagram sockets that have gone away.

.dev_start()/.dev_stop() seems to roughly means link up and link down
so I understand why you might want to add/remove the datagram sockets.
However, in practice, this doesn't seem to make much sense for a DPDK
vhost server.  This doesn't seem like the right way to indicate link
status to vhost clients.

It seems like it would just be easier to do this for both clients and
servers, but I don't know why it was done this way originally so I
choose to keep the client behavior.


More information about the dev mailing list