From: "Michael S. Tsirkin" <mst@redhat.com>
To: Max Gurtovoy <mgurtovoy@nvidia.com>
Cc: Cornelia Huck <cohuck@redhat.com>,
virtio-comment@lists.oasis-open.org, jasowang@redhat.com,
stefanha@redhat.com, oren@nvidia.com, parav@nvidia.com,
shahafs@nvidia.com, eperezma@redhat.com, aadam@redhat.com,
bodong@nvidia.com, amikheev@nvidia.com
Subject: Re: [RFC PATCH v2 1/2] Add virtio Admin Virtqueue specification
Date: Sat, 31 Jul 2021 18:26:54 -0400 [thread overview]
Message-ID: <20210731181746-mutt-send-email-mst@kernel.org> (raw)
In-Reply-To: <6b01d0aa-005b-06fc-aa07-70f26ed98c4c@nvidia.com>
On Sat, Jul 31, 2021 at 02:34:25PM +0300, Max Gurtovoy wrote:
>
> On 7/30/2021 10:05 AM, Cornelia Huck wrote:
> > On Thu, Jul 29 2021, Max Gurtovoy <mgurtovoy@nvidia.com> wrote:
> >
> > > On 7/28/2021 3:48 PM, Michael S. Tsirkin wrote:
> > > > On Mon, Jul 26, 2021 at 07:52:53PM +0300, Max Gurtovoy wrote:
> > > > > +\subsubsection{Vendor specific command set}\label{sec:Basic Facilities of a Virtio Device / Admin Virtqueues / Admin command set / Vendor specific command set}
> > > > > +
> > > > > +The Vendor specific command set is a group of classes and commands
> > > > > +within each of these classes which are vendor specific. Refer to
> > > > > +each vendor specification for more information on the supported
> > > > > +commands.
> > > > Here's another example.
> > > > It's important that there is a way to make a device completely
> > > > generic without vendor specific expensions.
> > > > Would be hard to do here.
> > > >
> > > > That's a generic comment.
> > > >
> > > > but specifically I am very reluctant to add vendor specific stuff like
> > > > this directly in the spec. We already have VIRTIO_PCI_CAP_VENDOR_CFG
> > > > and if that is not sufficient I would like to know why
> > > > before we add more vendor specific stuff.
> > > We are adding an option to add vendor specific commands. We're not
> > > adding it to the spec since each vendor will have its own manual for
> > > that.
> > IMHO, that way madness lies. I want to be able to look at the spec and
> > be able to implement a compliant device or a compliant driver. If a
> > vendor has some special feature they want to support, put it in the
> > spec, so that it is possible to actually implement it.
>
> You can implement a compliant device and a compliant. why do you think you
> can't ?
>
> Some features are vendor/sub-vendor specific.
>
> And as mentioned, you already added it to the spec so I guess it was for a
> reason.
Well we basically just reserved a capability ID so if people add their
vendor specific ones they don't conflict with each other or capabilities
we'll add in the future.
And such a capability can prove useful for things like
identifying the device to enable workarounds, etc.
That is a far cry from a fat interface which generic drivers will need to
support and who's sole purpose is vendor specific extensions.
And yes, it also allows you to unload the generic driver and load
a vendor driver. Which can then go wild if it wants to - nothing
we can or want to do about it.
> If someone would like to add its special souse to virtio device and we have
> a flexible admin queue to manage it with a spec compliant manner, why not ?
>
> The feature might not get support by the working group so do you really want
> to limit vendor from implementing features that are not agreed here on the
> mailing list ?
>
> Adding a vendor specific command set is trivial.
Supporting all this mess leter isn't. So we better make sure just how
is all this vendor stuff going to be limited.
> >
> > > For example, we can use virtio-cli to pass command from command line to
> > > device in pass-through manner without changing driver.
> > Things like that are part of the driver as in the spec sense. The spec
> > does not care how you actually split the implementation, or what
> > controls you are giving to whom. We need a defined interface.
>
> We have an interface. Its the admin queue.
>
> Virtio-cli will be a user space tool to send commands via this admin queue
> and configure the device.
>
> The driver will just open a char dev to supply a channel to this admin queue
> from user space.
>
> Examples:
>
> 1. format a virtio-blk device to add data integrity checks (T-10)
>
> 2. set 5 msix to VF_1, 12 msix to VF_2 and 2 msix to VF_3 before enabling
> SRIOV
>
> 3. Get telemetry log
>
> 4. Get error log
>
> 5. Get vendor specific HW health report
>
> 6. Get generic virtio device health report
>
> 7. set 5 queues to VF_1, 12 queues to VF_2 and 2 queues to VF_3 before
> enabling SRIOV
>
>
> This knowledge is needed for the sys-admin and not the driver. The driver
> will provide the channel to enable this configuration by an
> orchestrator/admin.
>
>
>
> >
next prev parent reply other threads:[~2021-07-31 22:26 UTC|newest]
Thread overview: 57+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-07-26 16:52 [RFC PATCH v2 1/2] Add virtio Admin Virtqueue specification Max Gurtovoy
2021-07-26 16:52 ` [RFC PATCH v2 2/2] virtio-blk: add support for VIRTIO_F_ADMIN_VQ Max Gurtovoy
2021-07-27 12:24 ` Stefan Hajnoczi
2021-07-27 16:08 ` [virtio-comment] " Max Gurtovoy
2021-07-28 8:25 ` Stefan Hajnoczi
2021-07-27 10:27 ` [RFC PATCH v2 1/2] Add virtio Admin Virtqueue specification Stefan Hajnoczi
2021-07-27 14:28 ` [virtio-comment] " Cornelia Huck
2021-07-27 15:29 ` Max Gurtovoy
2021-07-28 8:52 ` Stefan Hajnoczi
2021-07-28 10:59 ` Max Gurtovoy
2021-07-28 13:42 ` Stefan Hajnoczi
2021-07-28 14:20 ` Max Gurtovoy
2021-07-29 8:48 ` Stefan Hajnoczi
2021-08-01 10:46 ` [virtio-comment] " Max Gurtovoy
2021-08-02 12:58 ` Stefan Hajnoczi
2021-07-28 12:53 ` Michael S. Tsirkin
2021-07-30 6:45 ` [virtio-comment] " Cornelia Huck
2021-07-28 12:48 ` Michael S. Tsirkin
2021-07-29 14:51 ` Max Gurtovoy
2021-07-30 7:05 ` [virtio-comment] " Cornelia Huck
2021-07-31 11:34 ` Max Gurtovoy
2021-07-31 22:26 ` Michael S. Tsirkin [this message]
2021-07-31 22:53 ` Max Gurtovoy
2021-08-01 8:16 ` Michael S. Tsirkin
2021-08-01 8:38 ` Max Gurtovoy
2021-08-02 2:17 ` Jason Wang
2021-08-02 2:19 ` Jason Wang
2021-08-02 9:54 ` Max Gurtovoy
2021-08-02 14:51 ` [virtio-comment] " Cornelia Huck
2021-08-02 15:27 ` Max Gurtovoy
2021-08-02 17:28 ` Michael S. Tsirkin
2021-08-03 3:39 ` Jason Wang
2021-08-03 8:32 ` Max Gurtovoy
2021-08-03 9:01 ` Jason Wang
2021-08-03 9:21 ` Max Gurtovoy
2021-08-03 10:04 ` [virtio-comment] " Jason Wang
2021-07-30 7:36 ` Michael S. Tsirkin
2021-07-31 11:53 ` Max Gurtovoy
2021-07-31 22:17 ` Michael S. Tsirkin
2021-07-31 23:46 ` Max Gurtovoy
2021-08-02 13:22 ` Stefan Hajnoczi
2021-08-02 14:34 ` [virtio-comment] " Cornelia Huck
2021-08-02 14:58 ` Max Gurtovoy
2021-08-02 16:39 ` Stefan Hajnoczi
2021-08-02 15:21 ` [virtio-comment] " Cornelia Huck
2021-08-02 16:03 ` Max Gurtovoy
2021-08-02 17:05 ` Michael S. Tsirkin
2021-08-03 6:28 ` [virtio-comment] " Cornelia Huck
2021-08-03 6:41 ` Jason Wang
2021-08-03 6:51 ` [virtio-comment] " Cornelia Huck
2021-08-03 7:55 ` Max Gurtovoy
2021-08-03 8:55 ` Cornelia Huck
2021-08-03 9:04 ` Max Gurtovoy
2021-08-02 2:25 ` Jason Wang
2021-08-02 9:51 ` Max Gurtovoy
2021-08-02 17:07 ` Michael S. Tsirkin
2021-08-03 3:22 ` Jason Wang
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=20210731181746-mutt-send-email-mst@kernel.org \
--to=mst@redhat.com \
--cc=aadam@redhat.com \
--cc=amikheev@nvidia.com \
--cc=bodong@nvidia.com \
--cc=cohuck@redhat.com \
--cc=eperezma@redhat.com \
--cc=jasowang@redhat.com \
--cc=mgurtovoy@nvidia.com \
--cc=oren@nvidia.com \
--cc=parav@nvidia.com \
--cc=shahafs@nvidia.com \
--cc=stefanha@redhat.com \
--cc=virtio-comment@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.