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]