Discussion of the implementations of VIRTIO specification
 help / color / mirror / Atom feed
From: "Michael S. Tsirkin" <mst@redhat.com>
To: Cornelia Huck <cohuck@redhat.com>
Cc: Usama Arif <usama.arif@bytedance.com>,
	Halil Pasic <pasic@linux.ibm.com>,
	virtio-dev@lists.oasis-open.org, stefanha@redhat.com,
	ndragazis@arrikto.com, fam.zheng@bytedance.com,
	liangma@liangbit.com
Subject: Re: [PATCH 1/4] content: Introduce driver/device auxiliary notifications
Date: Wed, 10 Aug 2022 08:45:25 -0400	[thread overview]
Message-ID: <20220810084320-mutt-send-email-mst@kernel.org> (raw)
In-Reply-To: <87r11octk4.fsf@redhat.com>

On Wed, Aug 10, 2022 at 11:54:35AM +0200, Cornelia Huck wrote:
> On Tue, Aug 09 2022, "Michael S. Tsirkin" <mst@redhat.com> wrote:
> 
> > On Wed, Mar 30, 2022 at 04:21:02PM +0100, Usama Arif wrote:
> >> Driver auxiliary notifications allow the device to send notifications
> >> other than configuration changes and used buffer notifications to the
> >> driver, these are optional and their meaning is device-specific.
> >> 
> >> Device auxiliary notifcations allow the driver to send notifcations
> >> other than available buffer notifications to the device for example
> >> through a device register, these are optional and their meaning is
> >> device-specific.
> >> 
> >> These device-specific notifications are needed later when adding support
> >> for virtio-vhost-user device.
> >> 
> >> Signed-off-by: Usama Arif <usama.arif@bytedance.com>
> >> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
> >> Signed-off-by: Nikos Dragazis <ndragazis@arrikto.com>
> >
> > I see ccw is missing. Cornelia, any suggestions?
> 
> Hmm... I seem to be really behind on ccw things :(
> 
> We can probably use the following:
> 
> - for device->driver notification, use the next bit in the secondary
>   indicators (bit 0 is used for config change notification)
> - for driver->device notification, maybe use a new subcode for diagnose
>   0x500 (4 is probably the next free one?)
> 
> I have not looked at the requirements deeply, though.
> 
> This highlights another problem, however: When we introduce new features
> that require a transport-specific implementation, we often end up with a
> PCI implementation, but sometimes MMIO and more often ccw are left
> behind -- which is understandable, as PCI is what most people use, and
> ccw is something only a very few people are familiar with. This sadly
> means that we have a backlog of features supported in PCI, but not in
> ccw... requiring implementations for ccw would put an undue burden on
> contributors, as most of them are unlikely to write anything for a
> mainframe, ever. On the flip side, I do not have enough bandwith to deal
> with all of this.
> 
> Halil, any thoughts (on any of the above)?

Kind of depends. We Do we want to add a "universal config"
structure shared between transports?
Will help with some use-cases though not this one.


> >
> >> ---
> >>  content.tex | 35 ++++++++++++++++++++++-------------
> >>  1 file changed, 22 insertions(+), 13 deletions(-)
> >> 
> >> diff --git a/content.tex b/content.tex
> >> index c6f116c..85980ac 100644
> >> --- a/content.tex
> >> +++ b/content.tex
> >> @@ -160,29 +160,38 @@ \subsection{Legacy Interface: A Note on Feature
> >>  Specification text within these sections generally does not apply
> >>  to non-transitional devices.
> >>  
> >> -\section{Notifications}\label{sec:Basic Facilities of a Virtio Device
> >> -/ Notifications}
> >> +\section{Notifications}\label{sec:Basic Facilities of a Virtio Device / Notifications}
> >>  
> >>  The notion of sending a notification (driver to device or device
> >>  to driver) plays an important role in this specification. The
> >>  modus operandi of the notifications is transport specific.
> >>  
> >> -There are three types of notifications: 
> >> +There are five types of notifications:
> >>  \begin{itemize}
> >>  \item configuration change notification
> >>  \item available buffer notification
> >> -\item used buffer notification. 
> >> +\item used buffer notification
> >> +\item driver auxiliary notification
> >> +\item device auxiliary notification
> >>  \end{itemize}
> >>  
> >> -Configuration change notifications and used buffer notifications are sent
> >> -by the device, the recipient is the driver. A configuration change
> >> -notification indicates that the device configuration space has changed; a
> >> -used buffer notification indicates that a buffer may have been made used
> >> -on the virtqueue designated by the notification.
> >> -
> >> -Available buffer notifications are sent by the driver, the recipient is
> >> -the device. This type of notification indicates that a buffer may have
> >> -been made available on the virtqueue designated by the notification.
> >> +Configuration change notifications, used buffer notifications and
> >> +driver auxiliary notifications are sent by the device,
> >> +the recipient is the driver. A configuration change notification indicates
> >> +that the device configuration space has changed; a used buffer notification
> >> +indicates that a buffer may have been made used on the virtqueue designated
> >> +by the notification; driver auxiliary notifications allow the
> >> +device to send notifications other than configuration changes and used
> >> +buffer notifications to the driver, these are optional and their meaning
> >> +is device-specific.
> >> +
> >> +Available buffer notifications and device auxiliary notifications
> >> +are sent by the driver, the recipient is the device. Available buffer
> >> +notifications indicate that a buffer may have been made available on the
> >> +virtqueue designated by the notification; device auxiliary
> >> +notifcations allow the driver to send notifcations other than available
> >> +buffer notifications to the device for example through a device register, these
> >> +are optional and their meaning is device-specific.
> >>  
> >>  The semantics, the transport-specific implementations, and other
> >>  important aspects of the different notifications are specified in detail
> >> -- 
> >> 2.25.1


  reply	other threads:[~2022-08-10 12:45 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20220330152105.3770439-1-usama.arif@bytedance.com>
     [not found] ` <20220330152105.3770439-5-usama.arif@bytedance.com>
2022-08-09 20:06   ` [virtio-dev] Re: [PATCH 4/4] vhost-user: add vhost-user device type Michael S. Tsirkin
2022-08-11 10:05     ` Usama Arif
2022-08-11 11:20       ` Michael S. Tsirkin
2022-08-12  9:51         ` [External] " Usama Arif
     [not found] ` <20220330152105.3770439-2-usama.arif@bytedance.com>
2022-08-09 20:07   ` [PATCH 1/4] content: Introduce driver/device auxiliary notifications Michael S. Tsirkin
2022-08-10  9:54     ` [virtio-dev] " Cornelia Huck
2022-08-10 12:45       ` Michael S. Tsirkin [this message]
2022-08-10 13:07         ` Cornelia Huck
2022-08-10 17:59         ` Halil Pasic
2022-08-10 17:41       ` Halil Pasic
2022-08-10 19:23         ` Michael S. Tsirkin
2022-08-11  9:12           ` Cornelia Huck
2022-08-11 11:15             ` Michael S. Tsirkin
2022-08-11 14:41             ` Halil Pasic
2022-08-11 17:27             ` Halil Pasic
2022-08-11  8:53         ` Cornelia Huck
2022-08-11 14:09           ` Halil Pasic
2022-08-11 16:20             ` David Hildenbrand

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=20220810084320-mutt-send-email-mst@kernel.org \
    --to=mst@redhat.com \
    --cc=cohuck@redhat.com \
    --cc=fam.zheng@bytedance.com \
    --cc=liangma@liangbit.com \
    --cc=ndragazis@arrikto.com \
    --cc=pasic@linux.ibm.com \
    --cc=stefanha@redhat.com \
    --cc=usama.arif@bytedance.com \
    --cc=virtio-dev@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox