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


> From: Zhu, Lingshan <lingshan.zhu@intel.com>
> Sent: Wednesday, June 14, 2023 2:11 AM

> 
> On 6/14/2023 12:32 PM, Parav Pandit wrote:
> >
> >> From: Zhu, Lingshan <lingshan.zhu@intel.com>
> >> Sent: Wednesday, June 14, 2023 12:27 AM
> >>> 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
> > Before DRIVER_OK stage, to reconfigure a queue, driver needs to write
> queue_enable = 0.
> > This is not allowed in the spec.
> > So driver need to use queue_reset to reconfigure.
> The spec requires the driver config all other fields before set queue_enable.
> I am not sure whether there are real occurring cases that re-config the vq fields
> between queue_enable and DRIVER_OK in the initialization.
> 
Probably there is no case today, but may be it can occur where driver tries to configure something and if it fails, it may need to roll back and re-configure queues.

> But I agree maybe we should allow set queue_enable = 0.
>
This functionality of queue_enable = 0, is supported using queue_reset register.
 
> This reset may happen after DRIVER_OK.

Yes, the queue_reset after DRIVER_OK is not ambiguous.
Queue_reset before DRIVER_OK has the ambiguity, and will clarify that it should be supported by device before DRIVER_OK.

For the main motivation of this patch, the _RESET bit seems enough to selectively enable the queue before or after DRIVER_OK.


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