On 8/16/2023 10:11 AM, Jason Wang wrote:
On Tue, Aug 15, 2023 at 7:30 PM Zhu, Lingshan <lingshan....@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....@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 <jasow...@redhat.com>
Signed-off-by: Zhu Lingshan <lingshan....@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 easier
replied in another thread.

+
+If VIRTIO_F_QUEUE_STATE has been negotiaged but VIRTIO_RING_F_PACKED not been 
negotiated,
typo
yes
+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 queue
This 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-unsubscr...@lists.oasis-open.org
For additional commands, e-mail: virtio-dev-h...@lists.oasis-open.org



---------------------------------------------------------------------
To unsubscribe, e-mail: virtio-dev-unsubscr...@lists.oasis-open.org
For additional commands, e-mail: virtio-dev-h...@lists.oasis-open.org

Reply via email to