[virtio-dev] Re: [virtio-comment] Re: [PATCH v11 05/10] pci: add admin vq registers to virtio over pci

Michael S. Tsirkin
2023-04-24T15:36:37Z

On Thu, Apr 06, 2023 at 12:14:32AM -0400, Parav Pandit wrote:
>
>
> On 4/3/2023 11:03 AM, Michael S. Tsirkin wrote:
> > Add new registers to the PCI common configuration structure.
> >
> > These registers will be used for querying the indices of the admin
> > virtqueues of the owner device. To configure, reset or enable the admin
> > virtqueues, the driver should follow existing queue configuration/setup
> > sequence.
> >
> > Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
> >
> > ---
> > dropped Max's S.O.B
> > make queue_num not 0 based
> > ---
> > content.tex | 34 ++++++++++++++++++++++++++++++++++
> > 1 file changed, 34 insertions(+)
> >
> > diff --git a/content.tex b/content.tex
> > index 2eb15fa..5057df2 100644
> > --- a/content.tex
> > +++ b/content.tex
> > @@ -948,6 +948,10 @@ \subsubsection{Common configuration structure layout}\label{sec:Virtio Transport
> > le64 queue_device; /* read-write */
> > le16 queue_notify_data; /* read-only for driver */
> > le16 queue_reset; /* read-write */
> > +
> > + /* About the administration virtqueue. */
> > + le16 admin_queue_index; /* read-only for driver */
> > + le16 admin_queue_num; /* read-only for driver */
> > };
> > \end{lstlisting}
> > @@ -1033,6 +1037,19 @@ \subsubsection{Common configuration structure layout}\label{sec:Virtio Transport
> > This field exists only if VIRTIO_F_RING_RESET has been
> > negotiated. (see \ref{sec:Basic Facilities of a Virtio Device / Virtqueues / Virtqueue Reset}).
> > +\item[\field{admin_queue_index}]
> > + The device uses this to report the index of the first administration virtqueue.
> > + This field is valid only if VIRTIO_F_ADMIN_VQ has been negotiated.
> > +\item[\field{admin_queue_num}]
> > + The device uses this to report the number of the
> > + supported administration virtqueues.
> > + Virtqueues with index
> > + between \field{admin_queue_index} and (\field{admin_queue_index} +
> > + \field{admin_queue_num} - 1) inclusive serve as administration
> > + virtqueues.
> > + The value 0 indicates no supported administration virtqueues.
> no supported .. reads odd.
> How about,
> The value of 0 indicates that administration virtuques are unsupported.

I went back and forth on this but I feel "no queues" is clearer
in the end, and not odd: zero number of queues means no queues.

> > + This field is valid only if VIRTIO_F_ADMIN_VQ has been
> > + negotiated.
> > \end{description}
> > \devicenormative{\paragraph}{Common configuration structure layout}{Virtio Transport Options / Virtio Over PCI Bus / PCI Device Layout / Common configuration structure layout}
> > @@ -1119,6 +1136,14 @@ \subsubsection{Common configuration structure layout}\label{sec:Virtio Transport
> > were used before the queue reset.
> > (see \ref{sec:Basic Facilities of a Virtio Device / Virtqueues / Virtqueue Reset}).
> > +If VIRTIO_F_ADMIN_VQ has been negotiated, and if the driver
> > +configures any administration virtqueues, the driver MUST
> > +configure the administration virtqueues using the index
> > +in the range \field{admin_queue_index} to
> > +\field{admin_queue_index} + \field{admin_queue_num} - 1 inclusive.
> > +The driver MAY configure less administration virtqueues than
> > +supported by the device.
> > +
> > \subsubsection{Notification structure layout}\label{sec:Virtio Transport Options / Virtio Over PCI Bus / PCI Device Layout / Notification capability}
> > The notification location is found using the VIRTIO_PCI_CAP_NOTIFY_CFG
> > @@ -7686,6 +7711,15 @@ \chapter{Reserved Feature Bits}\label{sec:Reserved Feature Bits}
> > \item[VIRTIO_F_ADMIN_VQ(41)] This feature indicates that the device exposes one or more
> > administration virtqueues.
> > + At the moment this feature is only supported for devices using
> > + \ref{sec:Virtio Transport Options / Virtio Over PCI
> > + Bus}~\nameref{sec:Virtio Transport Options / Virtio Over PCI Bus}
> > + as the transport and is reserved for future use for
> > + devices using other transports (see
> > + \ref{drivernormative:Basic Facilities of a Virtio Device / Feature Bits}
> > + and
> > + \ref{devicenormative:Basic Facilities of a Virtio Device / Feature Bits} for
> > + handling features reserved for future use.
> > \end{description}
> Reviewed-by: Parav Pandit <parav@nvidia.com>
>
> 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: virtio-comment-subscribe@lists.oasis-open.org
> Unsubscribe: virtio-comment-unsubscribe@lists.oasis-open.org
> List help: virtio-comment-help@lists.oasis-open.org
> 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/