Re: [virtio] [PATCH v2] initialization: add extra device status handshake

From
Paolo Bonzini <>
Date
2013-09-25T08:18:02+00:00
ID
Thread
Re: [virtio] [PATCH v2] initialization: add extra device status handshake
Il 25/09/2013 09:49, Michael S. Tsirkin ha scritto:
>> > +
>> > +8. The DRIVER_OK status bit is set.  This is simply informational, 
>> > +   as the device may already be active at this point.
> 
> So we have a separate issue I think: there's lots
> of device specific configuration that really
> would benefit from "OK now go" bit.
> 
> For example, we register network device and we
> really don't want e.g. config interrupts before that is done.
> 
> Also qemu relied on DRIVER_OK to kick off vhost net and
> vhost scsi.

True, but that is wrong.  The virtio-scsi driver had to be modified to
support vhost-scsi, because it used the virtqueues before setting
DRIVER_OK and this didn't work with vhost-scsi.  This was ugly.

The right thing to do would be to start vhost upon the driver setting
FEATURES_OK.  Failure to start vhost (which is fatal for vhost-scsi,
since there is no userspace fallback unlike vhost-net) could be reported
by not acknowledging FEATURES_OK.

Paolo