All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Michael S. Tsirkin" <mst@redhat.com>
To: Parav Pandit <parav@nvidia.com>
Cc: "virtio-comment@lists.oasis-open.org"
	<virtio-comment@lists.oasis-open.org>,
	"virtio-dev@lists.oasis-open.org"
	<virtio-dev@lists.oasis-open.org>,
	"jasowang@redhat.com" <jasowang@redhat.com>,
	"cohuck@redhat.com" <cohuck@redhat.com>,
	"sgarzare@redhat.com" <sgarzare@redhat.com>,
	"stefanha@redhat.com" <stefanha@redhat.com>,
	"nrupal.jani@intel.com" <nrupal.jani@intel.com>,
	"Piotr.Uminski@intel.com" <Piotr.Uminski@intel.com>,
	"hang.yuan@intel.com" <hang.yuan@intel.com>,
	"virtio@lists.oasis-open.org" <virtio@lists.oasis-open.org>,
	Zhu Lingshan <lingshan.zhu@intel.com>,
	"pasic@linux.ibm.com" <pasic@linux.ibm.com>,
	Shahaf Shuler <shahafs@nvidia.com>,
	Max Gurtovoy <mgurtovoy@nvidia.com>
Subject: Re: [PATCH v10 03/10] admin: introduce group administration commands
Date: Tue, 14 Feb 2023 02:46:55 -0500	[thread overview]
Message-ID: <20230214014634-mutt-send-email-mst@kernel.org> (raw)
In-Reply-To: <PH0PR12MB5481F96BC5CCD806210F13D9DCA29@PH0PR12MB5481.namprd12.prod.outlook.com>

On Tue, Feb 14, 2023 at 01:18:42AM +0000, Parav Pandit wrote:
> 
> > From: Michael S. Tsirkin <mst@redhat.com>
> > Sent: Sunday, February 12, 2023 4:50 AM
> > 
> > On Sat, Feb 11, 2023 at 06:50:37PM +0000, Parav Pandit wrote:
> > >
> > > > From: Michael S. Tsirkin <mst@redhat.com>
> > > > Sent: Thursday, February 9, 2023 7:14 AM
> > >
> > > [..]
> > >
> > > > +Group administration commands can be issued through an owner device
> > > > +to control member devices of a group.
> > > can be issued by the owner device to control ...
> > 
> > Well it's clearly the driver that issues the commands. Don't see how
> > can a device issue them. If instead of "through an owner device"
> > you prefer a more verbose "the driver of an owner device" then
> > I can live with that. Let me know.
> 
> "through" wording is convoluted and it hints that someone else is preparing the command and its tunneled through the admin vq.
> Which is clearly not the scope here.

It is exactly someone else - the driver not the owner itself.

> 
> How about below simple statements like below?
> 
> Group administrative commands control the member devices.

> The driver sends group administrative commands to the owner device.

The point is that it's the same group though which this misses.
I think something like:

	The driver sends group administration commands to the owner device of
	the group to control member devices of the group.

will do the trick.

> 
> > > General spec structure is describing the "rules" as device and driver side
> > requirements.
> > > Can you please move above rule paragraph belongs to device and driver
> > requirements section?
> > 
> > Generally we have a bit of duplication. A high level description
> > showing how things work together. Then per-device/driver conforumance
> > statements. So I think this should stay but I will look at adding
> > conformance clauses too.
> Ok. that will be good.
> Yes. General description is good without the "rule" wording so that we have clear separation of conformance and description.

OK I will consider replacing "General rule" with "Generally". Not sure why it is better:
conformance uses rfc2119 which does not include any wording about rule
but oh well.


> > > I am not sure it should be intentional and mention of Linux.
> > > Any OS would need multiple error values to know the error cause.
> > > Linux doesn't have name "OK" either for well-known value of 0.
> > >
> > > For example
> > > $ errno 22
> > > EINVAL 22 Invalid argument
> > >
> > > $ errno 0
> > > This has not output for it and doesn't exist in errno.h.
> > 
> > No name OK true, but it does use 0 to signal success sometimes:
> Yes, but the wording is "success" and not "ok". :)

Hmm. A but wordy and we have _OK elsewhere in the spec, while Linux
does not have either OK ot SUCCESS. Just informal text.
Will consider how to make it clearer.

> > 
> > https://man7.org/linux/man-pages/man3/errno.3.html
> > 
> > For some system calls and library functions (e.g.,
> >        getpriority(2)), -1 is a valid return on success.  In such cases,
> >        a successful return can be distinguished from an error return by
> >        setting errno to zero before the call, and then, if the call
> >        returns a status that indicates that an error may have occurred,
> >        checking to see if errno has a nonzero value.
> > 
> > 
> > 
> > > Description is already good enough to describe what they are.
> > > Can we please drop Linux wording?
> > 
> > But why should we? 
> Because of following reasons.
> 
> 1. If we start putting 22 with Linux annotations, in few weeks virtio Net device section will be full of annotation of ethtool, tc, ip config and more for Linux developers.
> For example, the current two interrupt moderation patches need to write ethtool options details to match to following this Linux example here.
> It is better to avoid such things and keep spec OS agnostics, even though it is addressing and fitting into the Linux use cases.
> 
> 2. Virtio error code to Linux error code switch-case is simple routine to have.
> 
> 3. Every time virtio spec to refer to errno.h for finding right value is opposite of what spec may want to achieve.
> If an error code doesn't match to errno.h, now spec developers and reviewers to review what is not defined by errno.h to find as unique value.
> 
> 3.1 And if that is taken in future by errno.h for something else?
> 
> All of this is not worth a simple switch case statement to deal with.

I think we'll have to agree to disagree here. Years working on virt
taught me that matching some existing interface is usually better than
coming up with our own. Even if it is a bit more work upfront it pays
dividends later. Forcing some discipline in not coming up with
outlandish "EFOOBAR" codes no one driver will end up using is a good idea too.
And yes we can come up with crazy conventions like 0xdead for success.
Does not mean we should.

-- 
MST


  reply	other threads:[~2023-02-14  7:46 UTC|newest]

Thread overview: 80+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-02-09 12:13 [virtio-dev] [PATCH v10 00/10] Introduce device group and device management Michael S. Tsirkin
2023-02-09 12:13 ` [PATCH v10 01/10] virtio: document forward compatibility guarantees Michael S. Tsirkin
2023-02-09 14:52   ` [virtio-comment] Re: [virtio-dev] " David Edmondson
2023-02-13 12:06     ` [virtio-dev] " Cornelia Huck
2023-02-13 12:28       ` Michael S. Tsirkin
2023-02-11 18:50   ` [virtio-dev] " Parav Pandit
2023-02-09 12:13 ` [PATCH v10 02/10] admin: introduce device group and related concepts Michael S. Tsirkin
2023-02-09 15:00   ` [virtio-comment] " David Edmondson
2023-02-09 15:13     ` Michael S. Tsirkin
2023-02-09 15:22       ` David Edmondson
2023-02-09 17:47         ` Max Gurtovoy
2023-02-09 19:58           ` Michael S. Tsirkin
2023-02-12 12:10             ` Max Gurtovoy
2023-02-12 13:15               ` Michael S. Tsirkin
2023-02-12 14:34                 ` Max Gurtovoy
2023-02-12 20:19                   ` Michael S. Tsirkin
2023-02-12 22:49                     ` Max Gurtovoy
2023-02-13  8:12                       ` Michael S. Tsirkin
2023-02-13  9:20                         ` [virtio-dev] " Zhu, Lingshan
2023-02-13 10:55                           ` [virtio] " Michael S. Tsirkin
2023-02-13 10:28                         ` Max Gurtovoy
2023-02-14  1:22             ` Parav Pandit
2023-02-11 16:52   ` Parav Pandit
2023-02-11 18:50   ` Parav Pandit
2023-02-13 12:20   ` [virtio] " Cornelia Huck
2023-02-13 12:28     ` Michael S. Tsirkin
2023-02-09 12:13 ` [PATCH v10 03/10] admin: introduce group administration commands Michael S. Tsirkin
2023-02-10  8:24   ` [virtio-comment] " Zhu Lingshan
2023-02-11 18:50   ` Parav Pandit
2023-02-12  9:49     ` Michael S. Tsirkin
2023-02-13  0:54       ` Max Gurtovoy
2023-02-13  8:16         ` Michael S. Tsirkin
2023-02-13 10:35           ` [virtio-comment] " Max Gurtovoy
2023-02-13 12:42             ` Cornelia Huck
2023-02-13 13:11               ` Max Gurtovoy
2023-02-13 13:13                 ` [virtio] " Cornelia Huck
2023-02-13 13:26                   ` Max Gurtovoy
2023-02-13 13:36                     ` [virtio] " Cornelia Huck
2023-02-13 15:07                       ` Max Gurtovoy
2023-02-13 20:29                   ` [virtio] " Michael S. Tsirkin
2023-02-14  9:01                     ` [virtio-comment] " Cornelia Huck
2023-02-14  1:18       ` Parav Pandit
2023-02-14  7:46         ` Michael S. Tsirkin [this message]
2023-02-14 16:44           ` Parav Pandit
2023-02-14 21:57             ` Michael S. Tsirkin
2023-02-15  4:46               ` [virtio-comment] " Parav Pandit
2023-02-15  5:13                 ` Michael S. Tsirkin
2023-02-13 12:37   ` [virtio-comment] Re: [virtio-dev] " David Edmondson
2023-02-15  5:17   ` Parav Pandit
2023-02-15  5:18     ` Michael S. Tsirkin
2023-02-09 12:13 ` [PATCH v10 04/10] admin: introduce virtio admin virtqueues Michael S. Tsirkin
2023-02-11 18:50   ` Parav Pandit
2023-02-09 12:13 ` [PATCH v10 05/10] pci: add admin vq registers to virtio over pci Michael S. Tsirkin
2023-02-11 18:52   ` Parav Pandit
2023-02-13 12:21   ` [virtio-comment] " David Edmondson
2023-02-15  0:53     ` Max Gurtovoy
2023-02-15  5:09       ` Michael S. Tsirkin
2023-02-15  8:49       ` David Edmondson
2023-02-09 12:13 ` [PATCH v10 06/10] mmio: document ADMIN_VQ as reserved Michael S. Tsirkin
2023-02-11 18:52   ` Parav Pandit
2023-02-15  0:56   ` Max Gurtovoy
2023-02-09 12:13 ` [PATCH v10 07/10] ccw: " Michael S. Tsirkin
2023-02-13 12:49   ` [virtio-comment] " Cornelia Huck
2023-02-15  0:58   ` Max Gurtovoy
2023-02-09 12:14 ` [PATCH v10 08/10] admin: command list discovery Michael S. Tsirkin
2023-02-09 17:04   ` Uminski, Piotr
2023-02-11 18:52   ` Parav Pandit
2023-02-13  5:41   ` [virtio-dev] " Zhu Lingshan
2023-02-13 12:27   ` [virtio-comment] " David Edmondson
2023-02-09 12:14 ` [PATCH v10 09/10] admin: conformance clauses Michael S. Tsirkin
2023-02-11 16:43   ` Parav Pandit
2023-02-13  6:43   ` [virtio-comment] Re: [virtio-dev] " Zhu Lingshan
2023-02-13 10:51     ` Michael S. Tsirkin
2023-02-13 13:42   ` [virtio-comment] " David Edmondson
2023-02-09 12:14 ` [PATCH v10 10/10] ccw: document more reserved features Michael S. Tsirkin
2023-02-13 12:54   ` [virtio] " Cornelia Huck
2023-02-13 13:04     ` Cornelia Huck
2023-02-11 18:49 ` [PATCH v10 00/10] Introduce device group and device management Parav Pandit
2023-02-12  9:42   ` Michael S. Tsirkin
2023-02-14  0:52     ` [virtio-comment] " Parav Pandit

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=20230214014634-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.