Next in thread → Next in month →

Re: [virtio-comment] Re: [RFC PATCH v2 2/2] virtio-blk: add support for VIRTIO_F_ADMIN_VQ

From
Stefan Hajnoczi <>
Date
2021-07-28T08:25:56+00:00
ID
Thread
Re: [virtio-comment] Re: [RFC PATCH v2 2/2] virtio-blk: add support for VIRTIO_F_ADMIN_VQ
On Tue, Jul 27, 2021 at 07:08:52PM +0300, Max Gurtovoy wrote:
> 
> On 7/27/2021 3:24 PM, Stefan Hajnoczi wrote:
> > On Mon, Jul 26, 2021 at 07:52:54PM +0300, Max Gurtovoy wrote:
> > > Set the relevant index in case of VIRTIO_F_ADMIN_VQ negotiation. Also
> > > restrict the negotiation of VIRTIO_F_ADMIN_VQ to be possible only if
> > > VIRTIO_BLK_F_MQ is negotiated.
> > > 
> > > Signed-off-by: Max Gurtovoy <>
> > > ---
> > >   content.tex | 16 ++++++++++++++++
> > >   1 file changed, 16 insertions(+)
> > > 
> > > diff --git a/content.tex b/content.tex
> > > index d350175..03e25da 100644
> > > --- a/content.tex
> > > +++ b/content.tex
> > > @@ -4406,6 +4406,16 @@ \subsection{Virtqueues}\label{sec:Device Types / Block Device / Virtqueues}
> > >    N=1 if VIRTIO_BLK_F_MQ is not negotiated, otherwise N is set by
> > >    \field{num_queues}.
> > > + If VIRTIO_F_ADMIN_VQ is negotiated, queue0 is an admin virtqueue and the
> > > + request queues are shifted as the following:
> > "as follows:"
> > 
> > > +\begin{description}
> > > +\item[1] requestq1
> > > +\item[\ldots]
> > > +\item[N] requestqN
> > > +\end{description}
> > > +
> > > + if VIRTIO_BLK_F_MQ is not negotiated, VIRTIO_F_ADMIN_VQ MUST NOT be
> > > + negotiated.
> > Why?
> 
> To distinguish between adminq and requestq.

I don't see a conflict between VIRTIO_BLK_F_MQ and VIRTIO_F_ADMIN_VQ.
VIRTIO_BLK_F_MQ just indicates to the driver that it can fetch the
num_queues device configuration field for the number of request queues.

In the case where VIRTIO_F_ADMIN_VQ is negotiated but VIRTIO_BLK_F_MQ is
not negotiated the device's virtqueue layout is still:
1. Admin queue
2. requestq1
...
N+1. requestqN

The driver will probably only initialize the admin queue and requestq1.

Stefan
Next in thread → Next in month →