[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]