OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

virtio-comment message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: 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 <mgurtovoy@nvidia.com>
> > > ---
> > >   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

Attachment: signature.asc
Description: PGP signature



[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]