OASIS Open Mailing List Archives  ·  All Lists  ·  virtio  ·  2023-05

virtio — archive

[Date Prev]  |  [Thread Prev]  |  [Thread Next]  |  [Date Next]   —  [Date Index]  |  [Thread Index]  |  [Month Index]  |  [List Home]

[PATCH v13 00/10] Introduce device group and device management


On 5/5/2023 11:40 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. > > Based-on-patch-by: Max Gurtovoy <[email protected]> > Signed-off-by: Michael S. Tsirkin <[email protected]> Reviewed-by: Parav Pandit <[email protected]> > > --- > > since v11: > document that admin vqs are not counted with regular vqs > Reviewed-by: Parav Pandit <[email protected]> > Reviewed-by: Zhu Lingshan <[email protected]> > > dropped Max's S.O.B > make queue_num not 0 based > --- > content.tex | 9 +++++++++ > transport-pci.tex | 26 ++++++++++++++++++++++++++ > 2 files changed, 35 insertions(+) > > diff --git a/content.tex b/content.tex > index 8761795..1986e98 100644 > --- a/content.tex > +++ b/content.tex > @@ -851,6 +851,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} > > diff --git a/transport-pci.tex b/transport-pci.tex > index 5d98467..ec012b3 100644 > --- a/transport-pci.tex > +++ b/transport-pci.tex > @@ -321,6 +321,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} > > @@ -347,6 +351,7 @@ \subsubsection{Common configuration structure layout}\label{sec:Virtio Transport > > \item[\field{num_queues}] > The device specifies the maximum number of virtqueues supported here. > + This excludes administration virtqueues if any are supported. > > \item[\field{device_status}] > The driver writes the device status here (see \ref{sec:Basic Facilities of a Virtio Device / Device Status Field}). Writing 0 into this > @@ -406,6 +411,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. > + 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} > @@ -492,6 +510,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

[Date Prev]  |  [Thread Prev]  |  [Thread Next]  |  [Date Next]   —  [Date Index]  |  [Thread Index]  |  [Month Index]  |  [List Home]