[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: [PATCH 1/2] virtio: introduce selective queue enabling
This patch allows the driver to start the device (as set DRIVER_OK) with only some queues enabled, and then enable another queues later. This is the current way to migrate net device state through control virtqueue, in a software assisted framework with vDPA: * First, only net CVQ is enabled at DRIVER_OK * All the control commands (mac address, mq, etc) needed for the device to behave the same as the source of migration are sent * Finally all the dataplane queues are enabled. Signed-off-by: Eugenio PÃrez <eperezma@redhat.com> --- content.tex | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/content.tex b/content.tex index d2ab9eb..ea4a6d8 100644 --- a/content.tex +++ b/content.tex @@ -99,10 +99,10 @@ \section{Feature Bits}\label{sec:Basic Facilities of a Virtio Device / Feature B \begin{description} \item[0 to 23, and 50 to 127] Feature bits for the specific device type -\item[24 to 41] Feature bits reserved for extensions to the queue and +\item[24 to 42] Feature bits reserved for extensions to the queue and feature negotiation mechanisms -\item[42 to 49, and 128 and above] Feature bits reserved for future extensions. +\item[43 to 49, and 128 and above] Feature bits reserved for future extensions. \end{description} \begin{note} @@ -398,6 +398,13 @@ \section{Virtqueues}\label{sec:Basic Facilities of a Virtio Device / Virtqueues} Every driver and device supports either the Packed or the Split Virtqueue format, or both. +\subsection{Virtqueue selective enabling}\label{sec:Basic Facilities of a Virtio Device / Virtqueues / Selective Virtqueue Enable} + +If the driver negotiates VIRTIO\_F\_RING\_ENABLE\_ANYTIME, it can enable +individual virtqueues both before and after the DRIVER\_OK. The way to enable a +virtqueue is transport specific, but it mimics the re-enabling after an +hypothetical reset. + \subsection{Virtqueue Reset}\label{sec:Basic Facilities of a Virtio Device / Virtqueues / Virtqueue Reset} When VIRTIO_F_RING_RESET is negotiated, the driver can reset a virtqueue @@ -870,6 +877,10 @@ \chapter{Reserved Feature Bits}\label{sec:Reserved Feature Bits} \ref{devicenormative:Basic Facilities of a Virtio Device / Feature Bits} for handling features reserved for future use. + \item[VIRTIO_F_RING_ENABLE_ANYTIME(42)] This feature indicates + that the driver can enable a queue both before and after DRIVER\_OK. + See \ref{sec:Basic Facilities of a Virtio Device / Virtqueues / Selective Virtqueue Enable}. + \end{description} \drivernormative{\section}{Reserved Feature Bits}{Reserved Feature Bits} -- 2.31.1
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]