OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

virtio-comment message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: Re: [virtio-comment] Re: [PATCH 0/2] Selective queue enabling




On 6/14/2023 5:54 AM, Parav Pandit wrote:

From: Michael S. Tsirkin <mst@redhat.com>
Sent: Tuesday, June 13, 2023 5:48 PM
Why queue_reset is needed here?
I don't see spec saying that queue_enable must be done only once for a given
Q before DRIVER_OK.

I see you found it.

- program another queue address, size

Finally we are decided, let's start operating:

- DRIVER_OK


I don't see how it's possible with just queue_enable.


It is not explicitly mentioned in the spec that one can setup the
queue using
queue reset instead of queue enable.
As Jason mentioned it is implementation specific, one device
supports it and
one doesn't.
Hence, it will break on those devices which doesnt support it.

Setup? No, and spec explicitly says to setup one has to use
queue_enable. But this is not what we discussed with Stefano here.

The above sequence you described is not well documented.
It's the standard sequence for queue reset, is it not?

For example:

	Virtqueue reset is divided into two parts. The driver first resets a queue
and
	can afterwards optionally re-enable it.


it seems clear that queue has to be enabled before being reset.

Yes, it is clear.
I'm not sure what's broken.

If a device has assumed that queue_reset must be done after DRIVER_OK stage because until that point the device is not "live",
Such device needs the fix.
I think queue_reset just resets the queue and its fields including the queue_enable. DRIVER_OK is not a must for performing a queue_reset,
My understanding is:
- before DRIVER_OK, the driver can re-config the queue anytime, doesn't need a reset_queue - after DRIVER_OK, the driver has to reset the queue to re-config the queue. Because a queue is considered alive when both DRIVER_OK && queue_enable,
and resetting a queue also set queue_enable to zero.

At the end of the migration, hypervisor should reset the queues and config the queues with the guest configurations and enable the queues, right?

Thanks



[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]