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: [RFC PATCH v2 1/2] Add virtio Admin Virtqueue specification



On 8/2/2021 5:51 PM, Cornelia Huck wrote:
On Mon, Aug 02 2021, Max Gurtovoy <mgurtovoy@nvidia.com> wrote:

On 8/2/2021 5:17 AM, Jason Wang wrote:
å 2021/8/1 äå6:53, Max Gurtovoy åé:
On 8/1/2021 1:26 AM, Michael S. Tsirkin wrote:
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 ?
If I want to implement a device/driver, I need a standard to refer
to. How can something vendor-specific be standard? If it is useful, add
it to the virtio spec.

again, Linux driver will be generic.

It will include a char dev to user space virtio-cli that will enable sending admin commands to do administration.

Nobody asked to add vendor specific code to the driver.

The spec allows vendor specific stuff today that are not usable and I'm trying to create a usable API without adding one line of vendor code to driver.

You just need to open a window for few commands like others do and like you already did in the spec.

NVIDIA HW internals are different from VENDOR_A and VENDOR_B.

I want to debug my HW or enable some accelerations in it.

This is the way to do it.

Some features are vendor/sub-vendor specific.

Please don't do this. This breaks the efforts for making virtio as a
standard and generic device.

no it doesn't.

virtio already has vendor specific section.
But only as a pci-specific capability, with a very narrow scope and
constraints; that is a very far cry from what you're proposing!

why creating some pci vendor specific channel is ok but creating few admin command isn't ?



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.
it shouldn't bother you as a driver maintainer. I don't think vendor
specific code should go to Linux kernel.

No conflict will happen.

There is no harm in having a virtio-cli tool that will pass-through
commands from command line to the device using the admin queue.

All the HW devices I know have sw tool that can access it and virtio
shouldn't be different.

Also, I can develop my own vendor specific user space driver for
virtio-blk for example (lets say in SPDK framework). And this driver
will be aware of this vendor specific capabilities.

That's even worse since the driver can only work for the vendor
specific device which is in fact not a standard device.
this is not true.
What is not true? Adding some magic vendor-specific stuff that is needed
for the device to function does make it de facto non-standard.

This is not true because I can write a user space driver any way I want.

This discussion is repeating in cycles.

You already added vendor specific channel to the spec so why you ask me the need for it ?

lets progress to other sections.


For the vendor specific capability, the spec has already said that it
will be only used for debugging/reporting purpose:

"""

The optional Vendor data capability allows the device to present
vendor-specific data to the driver, without
conflicts, for debugging and/or reporting purposes,
and without conflicting with standard functionality.

"""

It looks to me what you're trying to invent may violate the spec.

this is also not true.
What is not true about that? That capability has even more restrictions
than what is cited here.



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