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: [PATCH V2 1/6] virtio: introduce virtqueue state


On Fri, Nov 03, 2023 at 10:49:42PM +0800, Zhu, Lingshan wrote:
>         +When SUSPEND is set, the device MUST record the Available State of every enabled splited virtqueue
>         +in \field{Available State} field,
>         +and correspondingly restore the Available State of every enabled splited virtqueue
>         +from \field{Available State} field when DRIVER_OK is set.
>         +
>         +The device SHOULD reset \field{Available State} field upon a device reset.
> 
>     At this point I have no idea
>     - how can a state of a virtqueue at a random time be represented
>       by a 16 bit integer
> 
> not sure what is a random time, this is to request the device to reset
> its avail state, for example, it is "le16 queue_avail_state" in virtio-pci
> common cfg. Resetting this so the device will not recover from a wrong value of
> the last run.

You simply never bother to say what is "Available State" and what
does it mean to restore it.  Not to mention words like "splited"
which just adds to the confusion.

>     - if it's not at a random time then why do you even need an integer -
>       synchronize queue to memory and then all state is in memory
> 
> Not sure what is a sync queue, but for example, "le16 queue_avail_state" for
> PCI transport exists in a cap.

I just point out that normally a lot of ring state is in memory.
So you need to be much more specific about how you are augmenting that.
For example, if buffers are used exactly in order for a split ring
then used index seems to be exactly the same as last available index
you describe - it's a free running counter. OTOH if they are not
used in order then I don't see how is a single index sufficient to
describe which ones have been used and which not.



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