[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: Re: [virtio-dev] Re: [RFC PATCH 4/5] virtqueue: constraints for virtqueue state
On 8/16/2023 10:11 AM, Jason Wang wrote:
On Tue, Aug 15, 2023 at 7:30âPM Zhu, Lingshan <lingshan.zhu@intel.com> wrote:On 8/15/2023 8:34 AM, Jason Wang wrote:On Mon, Aug 14, 2023 at 7:29âPM Zhu Lingshan <lingshan.zhu@intel.com> wrote:This commit specifies the constraints of the virtqueue state, and the actions should be taken by the device when SUSPEND and DRIVER_OK is set Signed-off-by: Jason Wang <jasowang@redhat.com> Signed-off-by: Zhu Lingshan <lingshan.zhu@intel.com> --- content.tex | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/content.tex b/content.tex index 43bd5de..f6ac581 100644 --- a/content.tex +++ b/content.tex @@ -587,6 +587,37 @@ \subsection{\field{Used State} Field} See also \ref{sec:Packed Virtqueues / Driver and Device Ring Wrap Counters}. +\drivernormative{\subsection}{Virtqueue State}{Basic Facilities of a Virtio Device / Virtqueue State} + +If VIRTIO_F_QUEUE_STATE has been negotiated, the driver MUST set SUSPEND in \field{device status} +first before getting or setting Virtqueue State of any virtqueues.I don't get why this is a must. It could be useful for debugging.To avoid race conditions with the device and make the device implementation easierreplied in another thread.+ +If VIRTIO_F_QUEUE_STATE has been negotiaged but VIRTIO_RING_F_PACKED not been negotiated,typoyes+the driver MUST NOT access \field{Used State} of any virtqueues, it should use the +used index in the used ring. + +\devicenormative{\subsection}{Virtqueue State}{Basic Facilities of a Virtio Device / Virtqueue State} + +If VIRTIO_F_QUEUE_STATE has been negotiated but SUSPEND is not set in \field{device status}, +the device MUST ignore any accesses against Virtqueue State of any virtqueues.Btw, do we need to clarify the behavior of ring reset after suspending?I think once suspended, the device should ignore resetting a queueThis needs to be clarified.
OK, I will clarify this in the resting queue section.This reminds me I should add: When SUSPEND is set, the \field{device status} is still operational for both the device and the driver. Because after SUSPEND, the driver may set DRIVER_OK and the device may
set NEEDS_RESET. Thanks
Thanks --------------------------------------------------------------------- To unsubscribe, e-mail: virtio-dev-unsubscribe@lists.oasis-open.org For additional commands, e-mail: virtio-dev-help@lists.oasis-open.org
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]