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
next prev parent 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