From: Cornelia Huck <cohuck@redhat.com>
To: "Michael S. Tsirkin" <mst@redhat.com>, Halil Pasic <pasic@linux.ibm.com>
Cc: linux-s390@vger.kernel.org, markver@us.ibm.com,
Christian Borntraeger <borntraeger@de.ibm.com>,
linux-kernel@vger.kernel.org,
virtualization@lists.linux-foundation.org,
Xie Yongji <xieyongji@bytedance.com>,
virtio-dev@lists.oasis-open.org
Subject: Re: [RFC PATCH 1/1] virtio: write back features before verify
Date: Mon, 04 Oct 2021 14:01:14 +0200 [thread overview]
Message-ID: <87ee912e45.fsf@redhat.com> (raw)
In-Reply-To: <20211003032253-mutt-send-email-mst@kernel.org>
On Sun, Oct 03 2021, "Michael S. Tsirkin" <mst@redhat.com> wrote:
> Sent too early. So here's what I propose. Could you pls take a look
> and if you like this, post a ccw section?
We have not talked about the mmio transport so far, but I guess it
should be fine as legacy and standard are separated.
> There's also an attempt to prevent fallback from modern to legacy
> here since if driver does fallback then failing FEATURES_OK can't work
> properly.
> That's a separate issue, will be a separate patch when I post
> this for consideration by the TC.
>
>
> diff --git a/content.tex b/content.tex
> index 1398390..06271f4 100644
> --- a/content.tex
> +++ b/content.tex
> @@ -140,10 +140,13 @@ \subsection{Legacy Interface: A Note on Feature
> Bits}\label{sec:Basic Facilities of a Virtio Device / Feature
> Bits / Legacy Interface: A Note on Feature Bits}
>
> -Transitional Drivers MUST detect Legacy Devices by detecting that
> -the feature bit VIRTIO_F_VERSION_1 is not offered.
> -Transitional devices MUST detect Legacy drivers by detecting that
> -VIRTIO_F_VERSION_1 has not been acknowledged by the driver.
> +Transitional drivers MAY support operating legacy devices.
> +Transitional devices MAY support operation by legacy drivers.
Why 'MAY'? Isn't the whole point of transitional that it can deal with
both?
> +
> +Transitional drivers MUST detect legacy devices in a way that is
> +transport specific.
> +Transitional devices MUST detect legacy drivers in a way that
> +is transport specific.
>
> In this case device is used through the legacy interface.
>
> @@ -160,6 +163,33 @@ \subsection{Legacy Interface: A Note on Feature
> Specification text within these sections generally does not apply
> to non-transitional devices.
>
> +\begin{note}
> +The device offers different features when used through
> +the legacy interface and when operated in accordance with this
> +specification.
> +\end{note}
> +
> +Transitional drivers MUST use Devices only through the legacy interface
s/Devices only through the legacy interface/devices through the legacy
interface only/
?
> +if the feature bit VIRTIO_F_VERSION_1 is not offered.
> +Transitional devices MUST NOT offer VIRTIO_F_VERSION_1 when used through
> +the legacy interface.
> +
> +When the driver uses a device through the legacy interface, then it
> +MUST only accept the features the device offered through the
> +legacy interface.
> +
> +When used through the legacy interface, the device SHOULD
> +validate that the driver only accepted the features it
> +offered through the legacy interface.
> +
> +When operating a transitional device, a transitional driver
> +SHOULD NOT use the device through the legacy interface if
> +operation through the modern interface has failed.
> +In particular, a transitional driver
> +SHOULD NOT fall back to using the device through the
> +legacy interface if feature negotiation failed
> +(since that would defeat the purpose of the FEATURES_OK bit).
> +
> \section{Notifications}\label{sec:Basic Facilities of a Virtio Device
> / Notifications}
>
> @@ -1003,6 +1033,12 @@ \subsubsection{Common configuration structure layout}\label{sec:Virtio Transport
>
> The driver MUST NOT write a 0 to \field{queue_enable}.
>
> +\paragraph}{Legacy Interface: Common configuration structure layout}\label{sec:Virtio Transport Options / Virtio Over PCI Bus / PCI Device Layout / Legacy Interface: Common configuration structure layout}
> +Transitional drivers SHOULD detect legacy devices by detecting
> +that the device has the Transitional PCI Device ID in
> +the range 0x1000 to 0x103f and lacks a VIRTIO_PCI_CAP_COMMON_CFG
> +capability specifying the location of a common configuration structure.
> +
> \subsubsection{Notification structure layout}\label{sec:Virtio Transport Options / Virtio Over PCI Bus / PCI Device Layout / Notification capability}
>
> The notification location is found using the VIRTIO_PCI_CAP_NOTIFY_CFG
> @@ -1288,6 +1324,10 @@ \subsubsection{Legacy Interfaces: A Note on PCI Device Layout}\label{sec:Virtio
> Transitional devices MUST present part of configuration
> registers in a legacy configuration structure in BAR0 in the first I/O
> region of the PCI device, as documented below.
> +
> +Transitional devices SHOULD detect legacy drivers by detecting
> +access to the legacy configuration structure.
> +
> When using the legacy interface, transitional drivers
> MUST use the legacy configuration structure in BAR0 in the first
> I/O region of the PCI device, as documented below.
Generally, looks good to me.
_______________________________________________
Virtualization mailing list
Virtualization@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/virtualization
next prev parent reply other threads:[~2021-10-04 12:01 UTC|newest]
Thread overview: 52+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-09-30 1:20 [RFC PATCH 1/1] virtio: write back features before verify Halil Pasic
2021-09-30 8:04 ` Christian Borntraeger
2021-09-30 9:28 ` Cornelia Huck
2021-09-30 11:03 ` Halil Pasic
2021-09-30 11:31 ` Cornelia Huck
2021-10-01 14:22 ` Halil Pasic
2021-10-01 15:18 ` Cornelia Huck
2021-10-02 18:13 ` Michael S. Tsirkin
2021-10-04 2:23 ` Halil Pasic
2021-10-04 9:07 ` Michael S. Tsirkin
2021-10-05 10:06 ` Cornelia Huck
2021-10-05 10:43 ` Halil Pasic
2021-10-05 11:11 ` Michael S. Tsirkin
2021-10-05 11:13 ` Cornelia Huck
2021-10-05 11:20 ` Michael S. Tsirkin
2021-10-05 11:59 ` Halil Pasic
2021-10-05 15:25 ` Cornelia Huck
2021-10-04 7:01 ` Cornelia Huck
2021-10-04 9:25 ` Halil Pasic
2021-10-04 9:51 ` Cornelia Huck
2021-10-02 12:09 ` Michael S. Tsirkin
2021-09-30 11:12 ` Michael S. Tsirkin
2021-09-30 11:36 ` Cornelia Huck
2021-10-02 18:20 ` Michael S. Tsirkin
2021-10-03 5:00 ` Halil Pasic
2021-10-03 6:42 ` Michael S. Tsirkin
2021-10-03 7:26 ` Michael S. Tsirkin
2021-10-04 12:01 ` Cornelia Huck [this message]
2021-10-04 12:54 ` Michael S. Tsirkin
2021-10-04 14:27 ` Cornelia Huck
2021-10-04 15:05 ` Michael S. Tsirkin
2021-10-04 15:45 ` [virtio-dev] " Cornelia Huck
2021-10-04 20:01 ` Michael S. Tsirkin
2021-10-05 7:38 ` Cornelia Huck
2021-10-05 11:17 ` Halil Pasic
2021-10-05 11:22 ` Michael S. Tsirkin
2021-10-05 15:20 ` Cornelia Huck
2021-10-01 7:21 ` Halil Pasic
2021-10-02 10:21 ` Michael S. Tsirkin
2021-10-04 12:19 ` Cornelia Huck
2021-10-04 13:11 ` Michael S. Tsirkin
2021-10-04 14:33 ` Cornelia Huck
2021-10-04 15:07 ` Michael S. Tsirkin
2021-10-04 15:50 ` Cornelia Huck
2021-10-04 19:17 ` Michael S. Tsirkin
2021-10-06 10:13 ` Cornelia Huck
2021-10-06 12:15 ` Michael S. Tsirkin
2021-10-05 7:25 ` Halil Pasic
2021-10-05 7:53 ` Michael S. Tsirkin
2021-10-05 10:46 ` Halil Pasic
2021-10-05 11:11 ` Michael S. Tsirkin
2021-10-01 14:34 ` Christian Borntraeger
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=87ee912e45.fsf@redhat.com \
--to=cohuck@redhat.com \
--cc=borntraeger@de.ibm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-s390@vger.kernel.org \
--cc=markver@us.ibm.com \
--cc=mst@redhat.com \
--cc=pasic@linux.ibm.com \
--cc=virtio-dev@lists.oasis-open.org \
--cc=virtualization@lists.linux-foundation.org \
--cc=xieyongji@bytedance.com \
/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;
as well as URLs for NNTP newsgroup(s).