From: "Michael S. Tsirkin" <mst@redhat.com>
To: Viresh Kumar <viresh.kumar@linaro.org>
Cc: virtio-comment@lists.linux.dev,
"Vincent Guittot" <vincent.guittot@linaro.org>,
"Alex Bennée" <alex.bennee@linaro.org>,
"Manos Pitsidianakis" <manos.pitsidianakis@linaro.org>,
"Cornelia Huck" <cohuck@redhat.com>,
"Parav Pandit" <parav@nvidia.com>,
"Matias Ezequiel Vara Larsen" <mvaralar@redhat.com>,
"Stefano Garzarella" <sgarzare@redhat.com>
Subject: Re: [PATCH V8] virtio-transport: Add a section to define mandatory transport requirements
Date: Tue, 30 Jul 2024 09:14:28 -0400 [thread overview]
Message-ID: <20240730091155-mutt-send-email-mst@kernel.org> (raw)
In-Reply-To: <1ef4e58fdbbc2c94305aa8fac856da882da1cdc2.1722324234.git.viresh.kumar@linaro.org>
On Tue, Jul 30, 2024 at 12:59:26PM +0530, Viresh Kumar wrote:
> The current Virtio documentation lacks a set of generic requirements
> applicable to all transports. Defining these generic requirements could
> be beneficial when integrating support for a new transport.
>
> This section outlines the essential requirements that any transport
> method must adhere to.
>
> Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
> ---
> V7->V8:
> - Remove separate sections for device/driver requirements.
> - Remove optional requirements.
> - Other generic improvements.
>
> V6->V7:
> - Remove parts that talk about accessing content of the virtqueue.
>
> V5->V6:
> - Move the changes to a new appendix section.
> - Clarify the requirements a bit more based on review comments.
>
> V4->V5:
> - s/The transport/A transport/
> - s/MUST provide/provides/
> - Added some text for transport requirements.
>
> V3->V4:
> - Remove the normative sections and use direct speech.
> - Change wording at few places.
>
> V2->V3:
> - Minor fixes.
> - Added Reviewed by from Alex.
>
> V1->V2:
> - Lot of changes after discussions with Alex and Cornelia.
> - Almost a rewrite of the first commit.
> - Add Transport normative sections.
>
> main.tex | 2 ++
> newtransport.tex | 40 ++++++++++++++++++++++++++++++++++++++++
> 2 files changed, 42 insertions(+)
> create mode 100644 newtransport.tex
>
> diff --git a/main.tex b/main.tex
> index b1913d65e964..6d337217a3d1 100644
> --- a/main.tex
> +++ b/main.tex
> @@ -42,6 +42,8 @@
>
> \input{newdevice.tex}
>
> +\input{newtransport.tex}
> +
> % acknowledgements
> \input{acknowledgements.tex}
>
> diff --git a/newtransport.tex b/newtransport.tex
> new file mode 100644
> index 000000000000..1c424ef907e3
> --- /dev/null
> +++ b/newtransport.tex
> @@ -0,0 +1,40 @@
> +\chapter{Creating New Transports}\label{sec:Creating New Transports}
> +
> +Devices and drivers utilize various transport methods to facilitate
> +communication, such as PCI, MMIO, or Channel I/O. These transport
> +methods determine multiple aspects of the interaction between the device
> +and the driver, including device discovery, capability exchange,
> +interrupt handling, and data transfer. For instance, in a host/guest
> +architecture, the host might expose a device to the guest via a PCI bus,
a virtual PCI bus
> +and the guest would employ a PCI device driver to interface with the
> +device.
> +
> +This section outlines the mandatory requirements that a transport method
> +must implement.
implements.
> +
> +A transport provides a mechanism to implement configuration space for
> +the device.
> +
> +A transport provides a mechanism for the driver to communicate virtqueue
> +configuration and memory location to the device.
> +
> +A transport provides a mechanism for the driver to identify the device
> +type.
> +
> +A transport allows one or more virtqueues to be implemented by the
> +device. The number of virtqueues is device specific and not specified by
> +the transport.
> +
> +A transport provides a mechanism for the device to send device
> +notifications to the driver, such as used buffer notification.
> +
> +A transport provides a mechanism for the driver to send driver
> +notifications to the device, such as available buffer notification.
available buffer notifications (plural)
> +
> +A transport provides a mechanism for the driver to initiate a device reset.
> +
> +A transport provides a mechanism for the driver to read the device's
> +status bit.
> +
> +A transport provides a mechanism for the driver to modify the device's
> +status.
what about feature bits? that is fundamental
Let's order it sensibly though, in the order in which stuff is used
1st identify the device
2 access status
number of vqs
configure vqs
notification
reset
> --
> 2.31.1.272.g89b43f80a514
next prev parent reply other threads:[~2024-07-30 13:14 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-07-30 7:29 [PATCH V8] virtio-transport: Add a section to define mandatory transport requirements Viresh Kumar
2024-07-30 13:14 ` Michael S. Tsirkin [this message]
2024-07-31 9:04 ` Viresh Kumar
2024-07-31 9:43 ` Cornelia Huck
2024-07-31 9:54 ` Michael S. Tsirkin
2024-07-31 10:15 ` Cornelia Huck
2024-07-31 12:16 ` Michael S. Tsirkin
2024-08-06 10:50 ` Viresh Kumar
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=20240730091155-mutt-send-email-mst@kernel.org \
--to=mst@redhat.com \
--cc=alex.bennee@linaro.org \
--cc=cohuck@redhat.com \
--cc=manos.pitsidianakis@linaro.org \
--cc=mvaralar@redhat.com \
--cc=parav@nvidia.com \
--cc=sgarzare@redhat.com \
--cc=vincent.guittot@linaro.org \
--cc=viresh.kumar@linaro.org \
--cc=virtio-comment@lists.linux.dev \
/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.