[virtio-dev] Re: [virtio-comment] Re: [PATCH 3/5] virtqueue: constraints for virtqueue state
"Zhu, Lingshan" <[email protected]>
| Newsgroups | dev.linux.lists.virtio-dev,dev.linux.lists.virtio-comment |
|---|---|
| Message-ID | <[email protected]> |
On 9/15/2023 7:16 PM, Michael S. Tsirkin wrote: > On Fri, Sep 15, 2023 at 10:59:29AM +0800, Zhu, Lingshan wrote: >> >> On 9/14/2023 7:30 PM, Michael S. Tsirkin wrote: >>> On Wed, Sep 06, 2023 at 04:16:35PM +0800, Zhu Lingshan 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: Zhu Lingshan <[email protected]> >>>> Signed-off-by: Jason Wang <[email protected]> >>>> Signed-off-by: Eugenio Pérez <[email protected]> >>>> --- >>>> content.tex | 19 +++++++++++++++++++ >>>> 1 file changed, 19 insertions(+) >>>> >>>> diff --git a/content.tex b/content.tex >>>> index 0fab537..9d727ce 100644 >>>> --- a/content.tex >>>> +++ b/content.tex >>>> @@ -594,6 +594,25 @@ \subsection{\field{Used State} Field} >>>> When VIRTIO_RING_F_PACKED is not negotiated, the 16-bit value of \field{used_idx} >>>> is always 0 >>>> +\drivernormative{\subsection}{Virtqueue State}{Basic Facilities of a Virtio Device / Virtqueue State} >>>> + >>>> +If VIRTIO_F_QUEUE_STATE has been negotiated but VIRTIO_RING_F_PACKED not been negotiated, >>>> +the driver SHOULD 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, the device SHOULD only accept setting >>>> +Virtqueue State of any virtqueues when DRIVER_OK is not set in \field{device status}, >>>> +or both of DRIVER_OK and SUSPEND are set in \field{device status}. >>>> +Otherwise the device MUST ignore any writes to Virtqueue State of any virtqueues. >>>> + >>>> +If VIRTIO_F_QUEUE_STATE have been negotiated, when SUSPEND is set, >>>> +the device MUST record the Virtqueue State of every enabled virtqueue >>>> +in \field{Available State} and \field{Used State} respectively, >>> record how? >> This is transport specific, for PCI they are recorded in the common config >> space, >> two new fields of them are introduced in patch 5. > > that is not enough space to record state for every enabled vq. They can work with queue_select like many other vq configurations. I will mention this in the comment. > >>>> +and correspondingly restore the Virtqueue State of every enabled virtqueue >>>> +from \field{Available State} and \field{Used State} when DRIVER_OK is set. >>> when is that? >> When the DRIVER sets DRIVER_OK and done before the device presents >> DRIVER_OK. > I don't really understand the flow here. does SUSPEND clear DRIVER_OK > then? SUSPEND does not clear DRIVER, I think this is not a must. > > >>> >>>> + >>>> \input{admin.tex} >>>> \chapter{General Initialization And Device Operation}\label{sec:General Initialization And Device Operation} >>>> -- >>>> 2.35.3 > > This publicly archived list offers a means to provide input to the > OASIS Virtual I/O Device (VIRTIO) TC. > > In order to verify user consent to the Feedback License terms and > to minimize spam in the list archive, subscription is required > before posting. > > Subscribe: [email protected] > Unsubscribe: [email protected] > List help: [email protected] > List archive: https://lists.oasis-open.org/archives/virtio-comment/ > Feedback License: https://www.oasis-open.org/who/ipr/feedback_license.pdf > List Guidelines: https://www.oasis-open.org/policies-guidelines/mailing-lists > Committee: https://www.oasis-open.org/committees/virtio/ > Join OASIS: https://www.oasis-open.org/join/ > --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]