[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: Re: [PATCH 1/2] virtio: introduce selective queue enabling
On Tue, Jun 06, 2023 at 07:55:10PM +0200, Eugenio Pérez wrote: > 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, No need for \_, we build with _ not being a special character. > 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. > + This is not a good way to do it: spec describes a certain order of initialization in several places. Please find all of them and fix, don't just add a separate chapter as a kind of kludge. > \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]