Re: [virtio-dev] Re: [PATCH 0/5] virtio: introduce SUSPEND bit and vq state

Zhu, Lingshan
2023-09-15T04:28:43Z

On 9/14/2023 7:14 PM, Michael S. Tsirkin wrote:
> On Wed, Sep 06, 2023 at 04:16:32PM +0800, Zhu Lingshan wrote:
>> This series introduces
>> 1)a new SUSPEND bit in the device status
>> Which is used to suspend the device, so that the device states
>> and virtqueue states are stabilized.
>>
>> 2)virtqueue state and its accessor, to get and set last_avail_idx
>> and last_used_idx of virtqueues.
>>
>> The main usecase of these new facilities is Live Migration.
>>
>> Future work: dirty page tracking and in-flight descriptors.
>> This series addresses many comments from Jason, Stefan and Eugenio
>> from RFC series.
> Compared to Parav's patchset this is much less functional.
we will add dirty page tracking and in-flight IO tracker in V2, then it
will be a full featured LM solution.

They are not in this series because we want this series to be small and
focus.
>
> Assuming that one goes in, can't we add ability to submit
> admin commands through MMIO on the device itself and be done with it?
I am not sure, IMHO, if we use admin vq as back-ends for MMIO based live
migration,
then the issues in admin vq still exist, for example:
1)nested virtualization
2)bare-metal live migration
3)QOS
4)introduce more attacking surfaces.

And what's more, if we wants to implementing a new capability onbehalf
of admin vq,
does the capability need to store at least one descriptor buffer, that
is the
capability length should be at least the max_lengh_of_buffer?

If that is not possible, do we need to implement extra fields like
length and remaining_length,
then the device repeating update the cap data, and the driver repeat
reading, way to complex
and introduce significant downtime.

>
>> Zhu Lingshan (5):
>> virtio: introduce vq state as basic facility
>> virtio: introduce SUSPEND bit in device status
>> virtqueue: constraints for virtqueue state
>> virtqueue: ignore resetting vqs when SUSPEND
>> virtio-pci: implement VIRTIO_F_QUEUE_STATE
>>
>> content.tex | 118 ++++++++++++++++++++++++++++++++++++++++++++++
>> transport-pci.tex | 18 +++++++
>> 2 files changed, 136 insertions(+)
>>
>> --
>> 2.35.3
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: virtio-dev-unsubscribe@lists.oasis-open.org
> For additional commands, e-mail: virtio-dev-help@lists.oasis-open.org