From: "Michael S. Tsirkin" <mst@redhat.com>
To: Jason Wang <jasowang@redhat.com>
Cc: virtio-comment@lists.oasis-open.org,
virtio-dev@lists.oasis-open.org, cohuck@redhat.com,
sgarzare@redhat.com, stefanha@redhat.com, nrupal.jani@intel.com,
Piotr.Uminski@intel.com, hang.yuan@intel.com,
virtio@lists.oasis-open.org,
Zhu Lingshan <lingshan.zhu@intel.com>,
pasic@linux.ibm.com, Shahaf Shuler <shahafs@nvidia.com>,
Parav Pandit <parav@nvidia.com>,
Max Gurtovoy <mgurtovoy@nvidia.com>
Subject: Re: [PATCH v9 05/10] pci: add admin vq registers to virtio over pci
Date: Thu, 24 Nov 2022 03:09:43 -0500 [thread overview]
Message-ID: <20221124030416-mutt-send-email-mst@kernel.org> (raw)
In-Reply-To: <CACGkMEsVCHmu24gaY2nG3kj8cBaRZVXD0a0kxFF-6PCWmsM8dQ@mail.gmail.com>
On Thu, Nov 24, 2022 at 03:46:00PM +0800, Jason Wang wrote:
> On Thu, Nov 24, 2022 at 3:14 PM Michael S. Tsirkin <mst@redhat.com> wrote:
> >
> > On Thu, Nov 24, 2022 at 02:00:54PM +0800, Jason Wang wrote:
> > > On Thu, Nov 24, 2022 at 5:08 AM Michael S. Tsirkin <mst@redhat.com> 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.
> > > >
> > > > Signed-off-by: Max Gurtovoy <mgurtovoy@nvidia.com>
> > > > Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
> > > > ---
> > > > content.tex | 34 ++++++++++++++++++++++++++++++++++
> > > > 1 file changed, 34 insertions(+)
> > > >
> > > > diff --git a/content.tex b/content.tex
> > > > index 04235da..aa68926 100644
> > > > --- a/content.tex
> > > > +++ b/content.tex
> > > > @@ -946,6 +946,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 */
> > >
> > > If we are adding more queue related functionality, it would be placed
> > > under the above two fields which seems not elegant. I wonder if a new
> > > structure is needed here.
> > >
> > > Thanks
> >
> > I don't expect more, if that happens we can always refactor it.
>
> I may miss something but it should be a part of ABI. How could we
> refactor it without breaking ABI?
>
> Thanks
/* About the administration virtqueue. */
- le16 admin_queue_index; /* read-only for driver */
- le16 admin_queue_num; /* read-only for driver */
+ struct { /* read-only for driver */
+ le16 index;
+ le16 num;
+ } admin_queue;
does not affect the ABI. But the order of things makes it less readable.
We would also have to change references to admin_queue_index with
admin_queue.index and explain the "." notation in introduction.
All doable but this patchset is large enough as it is.
> > Generally this is not C, no one compiles this directly.
> > So we do not need to add structures unless
> > they are referred to in spec text.
> >
> > > > };
> > > > \end{lstlisting}
> > > >
> > > > @@ -1031,6 +1035,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}) inclusive serve as administration
> > > > + virtqueues.
> > > > + Thus the number of administration virtqueues equals
> > > > + (\field{admin_queue_num} + 1).
> > > > + 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}
> > > > @@ -1117,6 +1134,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} 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
> > > > @@ -6992,6 +7017,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}
> > > >
> > > > --
> > > > MST
> > > >
> >
next prev parent reply other threads:[~2022-11-24 8:09 UTC|newest]
Thread overview: 62+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-11-23 21:07 [PATCH v9 00/10] Introduce device group and device management Michael S. Tsirkin
2022-11-23 21:08 ` [PATCH v9 01/10] virtio: document forward compatibility guarantees Michael S. Tsirkin
2022-11-24 4:33 ` Jason Wang
2022-11-24 6:59 ` Michael S. Tsirkin
2022-11-24 7:34 ` Jason Wang
2022-11-24 8:15 ` Michael S. Tsirkin
2022-11-24 12:05 ` [virtio-dev] " Cornelia Huck
2022-11-25 3:17 ` Jason Wang
2022-11-25 10:37 ` [virtio-dev] " Cornelia Huck
2022-11-28 6:14 ` Jason Wang
2022-11-23 21:08 ` [PATCH v9 02/10] admin: introduce device group and related concepts Michael S. Tsirkin
2022-11-24 5:41 ` Jason Wang
2022-11-24 7:08 ` Michael S. Tsirkin
2022-11-24 7:37 ` [virtio-dev] " Jason Wang
2022-11-24 8:18 ` Michael S. Tsirkin
2022-11-24 12:12 ` Cornelia Huck
2022-11-25 3:23 ` Jason Wang
2022-11-25 10:58 ` [virtio] " Cornelia Huck
2022-11-25 12:08 ` Michael S. Tsirkin
2022-11-23 21:08 ` [PATCH v9 03/10] admin: introduce group administration commands Michael S. Tsirkin
2022-11-24 5:52 ` [virtio-dev] " Jason Wang
2022-11-24 7:12 ` Michael S. Tsirkin
2022-11-24 7:42 ` Jason Wang
2022-11-24 8:03 ` Michael S. Tsirkin
2022-11-25 3:24 ` [virtio-comment] " Jason Wang
2022-11-24 12:21 ` [virtio-dev] " Cornelia Huck
2022-11-25 3:54 ` Jason Wang
2022-11-28 13:14 ` [virtio-comment] " Zhu Lingshan
2022-11-23 21:08 ` [PATCH v9 04/10] admin: introduce virtio admin virtqueues Michael S. Tsirkin
2022-11-28 13:12 ` [virtio-comment] " Zhu Lingshan
2022-11-23 21:08 ` [PATCH v9 05/10] pci: add admin vq registers to virtio over pci Michael S. Tsirkin
2022-11-24 6:00 ` Jason Wang
2022-11-24 7:14 ` Michael S. Tsirkin
2022-11-24 7:46 ` Jason Wang
2022-11-24 8:09 ` Michael S. Tsirkin [this message]
2022-11-25 3:27 ` Jason Wang
2022-11-23 21:08 ` [PATCH v9 06/10] mmio: document ADMIN_VQ as reserved Michael S. Tsirkin
2022-11-24 6:03 ` Jason Wang
2022-11-24 7:45 ` Michael S. Tsirkin
2022-11-23 21:08 ` [PATCH v9 07/10] ccw: " Michael S. Tsirkin
2022-11-23 21:08 ` [PATCH v9 08/10] admin: command list discovery Michael S. Tsirkin
2022-11-24 6:40 ` Jason Wang
2022-11-24 8:30 ` Michael S. Tsirkin
2022-11-25 3:38 ` [virtio-comment] " Jason Wang
2022-11-25 11:43 ` Michael S. Tsirkin
2022-11-28 4:34 ` Jason Wang
2022-11-28 7:42 ` Michael S. Tsirkin
2022-11-23 21:08 ` [PATCH v9 09/10] admin: conformance clauses Michael S. Tsirkin
2022-11-24 6:51 ` Jason Wang
2022-11-24 8:36 ` Michael S. Tsirkin
2022-11-25 3:50 ` Jason Wang
2022-11-25 11:42 ` [virtio] " Cornelia Huck
2022-11-25 11:56 ` Michael S. Tsirkin
2022-11-25 12:10 ` [virtio] " Cornelia Huck
2022-11-25 11:47 ` Michael S. Tsirkin
2022-11-28 4:32 ` Jason Wang
2022-11-28 7:39 ` Michael S. Tsirkin
2022-11-24 12:28 ` [virtio] " Cornelia Huck
2022-11-25 3:38 ` Jason Wang
2022-11-23 21:08 ` [PATCH RFC v9 10/10] ccw: document more reserved features Michael S. Tsirkin
2022-11-24 6:53 ` Jason Wang
2022-11-24 8:31 ` Michael S. Tsirkin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20221124030416-mutt-send-email-mst@kernel.org \
--to=mst@redhat.com \
--cc=Piotr.Uminski@intel.com \
--cc=cohuck@redhat.com \
--cc=hang.yuan@intel.com \
--cc=jasowang@redhat.com \
--cc=lingshan.zhu@intel.com \
--cc=mgurtovoy@nvidia.com \
--cc=nrupal.jani@intel.com \
--cc=parav@nvidia.com \
--cc=pasic@linux.ibm.com \
--cc=sgarzare@redhat.com \
--cc=shahafs@nvidia.com \
--cc=stefanha@redhat.com \
--cc=virtio-comment@lists.oasis-open.org \
--cc=virtio-dev@lists.oasis-open.org \
--cc=virtio@lists.oasis-open.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.