OASIS Virtual I/O Device (VIRTIO) TC

 View Only
Expand all | Collapse all

[PATCH v2 00/17] admin: reconfirming the TC charter

  • 1.  [PATCH v2 00/17] admin: reconfirming the TC charter

    Posted 02-08-2021 12:16
    As previously reported https://lists.oasis-open.org/archives/virtio/202101/msg00000.html the latest revisions to the TC Process and the OASIS Committee Operations Process include new requirements to periodically confirm the TC charter and appoint or reappoint the TC chair(s). Our current charter can be found here: https://www.oasis-open.org/committees/virtio/charter.php Also included as patch 1 in the series. Some of it is a bit out of date. E.g. it talks of 1.0 in a future tense. There is nothing major though. I therefore propose the following clarifications to the charter. I did my best to address previous comments by Cornelia. Please review, we need to finish the process by March. My idea is to eventually continue the TC through a charter clarification (Section 1.8). changes from v1: address comments by Cornelia Michael S. Tsirkin (17): import the current TC charter charter: update historical notes charter: 1.0 is history charter: mention 1.x series in the background section charter: add channel I/O to list charter: drop attempts to list all devices charter: reserved id/feature list has nothing to do with 2.0 charter: explain what legacy is in the background section charter: update on deliverables charter: add motivation for changes made since 1.0 charter: update to mention 1.X instead of 0.9, 2.0 charter: document our focus on compatibility charter: TC as registrar for device IDs/features chater: document what we care about in changes charter: driver/device terminology charter: legacy mode terminology charter: audience terminology charter.html 149 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 149 insertions(+) create mode 100644 charter.html -- MST


  • 2.  [PATCH v2 01/17] import the current TC charter

    Posted 02-08-2021 12:16
    Import the TC charter from: https://www.oasis-open.org/committees/virtio/charter.php Signed-off-by: Michael S. Tsirkin <mst@redhat.com> --- charter.html 133 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 133 insertions(+) create mode 100644 charter.html diff --git a/charter.html b/charter.html new file mode 100644 index 0000000..7006009 --- /dev/null +++ b/charter.html @@ -0,0 +1,133 @@ +<html> +<title>OASIS Virtual I/O Device (VIRTIO) Technical Committee TC charter</title> +<body> + <ol id="charter-outline" class="bold-lower-alpha"> + <li> + TC Name + <p>OASIS Virtual I/O Device (VIRTIO) Technical Committee</p> + </li> + <li>Statement of Purpose + <p> + Background: + </p> + <p> + Hardware virtualization allows multiple operating systems ("guests") to share the same hardware ("host") managed by host software ("hypervisor"). + </p> + <p> + These guests need networks, storage, consoles and similar but non-virtualization-aware standard devices cannot be shared, or guests may not be permitted to access host devices at all. The simplest solution is to emulate a device expected by the guest operating system, but this can be slow and/or complicated. As most operating systems have facilities for adding drivers for new physical hardware, we can use the same facilities to add drivers for devices which are easier and/or more efficient to implement in software. + </p> + <p> + As every hypervisor is different, they tend to implement hypervisor-specific devices, requiring every guest to support a new device for that environment. For example, Linux currently supports completely separate drivers for eight different virtualization platforms, with most drivers being sub-optimal. In 2007, an attempt was made to implement a hypervisor and OS-agnostic device model in Linux guests and the KVM hypervisor over the standard PCI bys. This is now also supported by the VirtualBox hypervisor (2010) and FreeBSD guests (2011). + </p> + <p> + A Draft Specification + </p> + <p> + In 2009, as interest accumulated, the "Virtio PCI Card Specification" was published, with appendices for network, block storage and console devices. The emphasis was that virtual devices should be simple, look like driver authors expect physical devices to look, should be extensible, and that they should perform well. + </p> + <p> + Even at the time, there were implementations of virtio devices over non-PCI transports, and in 2011 the simplified "mmio" transport was added as an Appendix, as well as a "remote processor message" device which is actually used to communicate to a separate, physical CPU, rather than a virtual guest. + </p> + <p> + The years of experience have highlighted some of the implementation and design mistakes: enhancements have worked around many of them, but at cost of simplicity. Implementation bugs have also caused occasional anguish. + </p> + <p> + A 1.0 Specification + </p> + <p> + Our goal is to keep the good, discard the bad, and make the ugly optional. In particular, we will try not to break too much, and ensure it's possible for devices to support both 1.0 compliant and legacy guest drivers. + </p> + </li> + <li> + Scope + <p> + The "Virtio PCI Card Specification" 0.9.5, minus the Appendix H, shall be used as a starting point (referred to as "legacy"). Note that we expect the final output of this TC to be incompatible with that specification, though it will be possible for virtual devices to support both legacy and modern guest drivers. + </p> + <p> + The TC will produce an OASIS Standard by refining and documenting existing implementations and practice. After publication of the initial OASIS Standard, the TC may choose to develop a Version 2.0 standard that builds on lessons learned and identified trends and that may result in a significantly different architecture and approach. Until then, the TC shall not throw out the baby with the bathwater, boil the ocean, or embark on a PhD research topic. + </p> + <p> + The TC will consider one or more buses for virtual devices, including PCI. It will consider various kinds of devices, including network devices. Each part of the OASIS Standard will be considered in terms of portability, simplicity, least-surprise for driver authors, extensibility and performance. In particular, the effect of future radical extensions (such as layout changes) will be considered. + </p> + </li> + <li> + Deliverables + <ol class="spaced decimal"> + <li> + Specification of feature negotiation, configuration and queues, from both driver and device points of view. + <ol class="vanilla-lower-alpha"> + <li> + Specifically for virtio over PCI. + </li> + <li> + Specifically for virtio over mmio. + </li> + <li> + Specifically for other transports as decided by TC. + </li> + </ol> + </li> + <li> + Specification of device-specific configuration. + <ol class="vanilla-lower-alpha"> + <li> + For network devices. + </li> + <li> + For block storage devices. + </li> + <li> + For entropy devices. + </li> + <li> + For console devices. + </li> + <li> + For memory ballooning devices. + </li> + <li> + For SCSI endpoint devices. + </li> + <li> + Non-normative advice for designing new device types. + </li> + <li> + List of reserved device numbers for non-specified device types. (This section is likely to see ongoing maintenance before 2.0). + </li> + <li> + List of reserved feature numbers for non-specified features for each device type. (This section is likely to see ongoing maintenance before 2.0). + </li> + </ol> + </li> + <li> + Non-normative code examples for operation of guest/host side of buffers. + </li> + <li> + Non-normative guide for creating devices which also support previous mode(s). + </li> + </ol> + <p> + We anticipate deliverables (1) and (2) to be a single work, and (3) and (4) to be separate works. The projected delivery dates are 12 to 16 months after the first meeting. + </p> + </li> + <li> + IPR Mode + <p> + Non-Assertion Mode + </p> + </li> + <li> + Audience + <p> + Developers of hypervisors and device driver authors. + </p> + </li> + <li> + Language + <p> + US English. + </p> + </li> + </ol> +</body> +</html> -- MST


  • 3.  [PATCH v2 02/17] charter: update historical notes

    Posted 02-08-2021 12:16
    In the background section, be more specific that it refers to state at the time it was written (2013). Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Reviewed-by: Cornelia Huck <cohuck@redhat.com> --- charter.html 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/charter.html b/charter.html index 7006009..1e1ffd3 100644 --- a/charter.html +++ b/charter.html @@ -17,7 +17,7 @@ These guests need networks, storage, consoles and similar but non-virtualization-aware standard devices cannot be shared, or guests may not be permitted to access host devices at all. The simplest solution is to emulate a device expected by the guest operating system, but this can be slow and/or complicated. As most operating systems have facilities for adding drivers for new physical hardware, we can use the same facilities to add drivers for devices which are easier and/or more efficient to implement in software. </p> <p> - As every hypervisor is different, they tend to implement hypervisor-specific devices, requiring every guest to support a new device for that environment. For example, Linux currently supports completely separate drivers for eight different virtualization platforms, with most drivers being sub-optimal. In 2007, an attempt was made to implement a hypervisor and OS-agnostic device model in Linux guests and the KVM hypervisor over the standard PCI bys. This is now also supported by the VirtualBox hypervisor (2010) and FreeBSD guests (2011). + As every hypervisor is different, they tend to implement hypervisor-specific devices, requiring every guest to support a new device for that environment. For example, in 2013 Linux supported completely separate drivers for eight different virtualization platforms, with most drivers being sub-optimal. In 2007, an attempt was made to implement a hypervisor and OS-agnostic device model in Linux guests and the KVM hypervisor over the standard PCI bus. This is now supported by multiple other hypervisors. </p> <p> A Draft Specification -- MST


  • 4.  Re: [virtio] [PATCH v2 02/17] charter: update historical notes

    Posted 02-08-2021 14:27
    On Mon, 8 Feb 2021 07:15:48 -0500 "Michael S. Tsirkin" <mst@redhat.com> wrote: > In the background section, be more specific that it refers to > state at the time it was written (2013). > > Signed-off-by: Michael S. Tsirkin <mst@redhat.com> > Reviewed-by: Cornelia Huck <cohuck@redhat.com> Acked-by: Halil Pasic <pasic@linux.ibm.com> I didn't check the historic facts...


  • 5.  [PATCH v2 03/17] charter: 1.0 is history

    Posted 02-08-2021 12:16
    make everything there past tense Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Reviewed-by: Cornelia Huck <cohuck@redhat.com> --- charter.html 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/charter.html b/charter.html index 1e1ffd3..cec72d9 100644 --- a/charter.html +++ b/charter.html @@ -35,7 +35,7 @@ A 1.0 Specification </p> <p> - Our goal is to keep the good, discard the bad, and make the ugly optional. In particular, we will try not to break too much, and ensure it's possible for devices to support both 1.0 compliant and legacy guest drivers. + With the 1.0 Specification, the goal of the OASIS Virtual I/O Device (VIRTIO) Technical Committee was to keep the good, discard the bad, and make the ugly optional. In particular, the Committee tried not to break too much, and (with the exception of the mmio transport) the specification is designed to make it possible for devices to support both 1.0 compliant and legacy guest drivers. </p> </li> <li> -- MST


  • 6.  Re: [virtio] [PATCH v2 03/17] charter: 1.0 is history

    Posted 02-08-2021 14:28
    On Mon, 8 Feb 2021 07:15:50 -0500 "Michael S. Tsirkin" <mst@redhat.com> wrote: > make everything there past tense > > Signed-off-by: Michael S. Tsirkin <mst@redhat.com> > Reviewed-by: Cornelia Huck <cohuck@redhat.com> Reviewed-by: Halil Pasic <pasic@linux.ibm.com>


  • 7.  [PATCH v2 04/17] charter: mention 1.x series in the background section

    Posted 02-08-2021 12:16
    Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Reviewed-by: Cornelia Huck <cohuck@redhat.com> --- charter.html 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/charter.html b/charter.html index cec72d9..a8b2356 100644 --- a/charter.html +++ b/charter.html @@ -37,6 +37,12 @@ <p> With the 1.0 Specification, the goal of the OASIS Virtual I/O Device (VIRTIO) Technical Committee was to keep the good, discard the bad, and make the ugly optional. In particular, the Committee tried not to break too much, and (with the exception of the mmio transport) the specification is designed to make it possible for devices to support both 1.0 compliant and legacy guest drivers. </p> + <p> + 1.X Specifications + </p> + <p> + With the 1.1, 1.2 and future revisions of the Specification, we aim to evolve this standard further, while both continuing to honor the goals of the 1.0 Specification and to include new objectives. + </p> </li> <li> Scope -- MST


  • 8.  Re: [virtio] [PATCH v2 04/17] charter: mention 1.x series in the background section

    Posted 02-08-2021 14:28
    On Mon, 8 Feb 2021 07:15:53 -0500 "Michael S. Tsirkin" <mst@redhat.com> wrote: > Signed-off-by: Michael S. Tsirkin <mst@redhat.com> > Reviewed-by: Cornelia Huck <cohuck@redhat.com> > --- Reviewed-by: Halil Pasic <pasic@linux.ibm.com>


  • 9.  [PATCH v2 05/17] charter: add channel I/O to list

    Posted 02-08-2021 12:16
    Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Reviewed-by: Cornelia Huck <cohuck@redhat.com> --- charter.html 3 +++ 1 file changed, 3 insertions(+) diff --git a/charter.html b/charter.html index a8b2356..38cad98 100644 --- a/charter.html +++ b/charter.html @@ -68,6 +68,9 @@ <li> Specifically for virtio over mmio. </li> + <li> + Specifically for virtio over channel I/O. + </li> <li> Specifically for other transports as decided by TC. </li> -- MST


  • 10.  Re: [virtio] [PATCH v2 05/17] charter: add channel I/O to list

    Posted 02-08-2021 14:29
    On Mon, 8 Feb 2021 07:15:55 -0500 "Michael S. Tsirkin" <mst@redhat.com> wrote: > Signed-off-by: Michael S. Tsirkin <mst@redhat.com> > Reviewed-by: Cornelia Huck <cohuck@redhat.com> Reviewed-by: Halil Pasic <pasic@linux.ibm.com>


  • 11.  [PATCH v2 06/17] charter: drop attempts to list all devices

    Posted 02-08-2021 12:16
    we are adding new device types all the time. no point in trying to list them all in the charter. Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Reviewed-by: Cornelia Huck <cohuck@redhat.com> --- charter.html 17 +---------------- 1 file changed, 1 insertion(+), 16 deletions(-) diff --git a/charter.html b/charter.html index 38cad98..82fb981 100644 --- a/charter.html +++ b/charter.html @@ -80,22 +80,7 @@ Specification of device-specific configuration. <ol class="vanilla-lower-alpha"> <li> - For network devices. - </li> - <li> - For block storage devices. - </li> - <li> - For entropy devices. - </li> - <li> - For console devices. - </li> - <li> - For memory ballooning devices. - </li> - <li> - For SCSI endpoint devices. + Normative requirements for specified device types. </li> <li> Non-normative advice for designing new device types. -- MST


  • 12.  Re: [virtio] [PATCH v2 06/17] charter: drop attempts to list all devices

    Posted 02-08-2021 16:16
    On Mon, 8 Feb 2021 07:15:57 -0500 "Michael S. Tsirkin" <mst@redhat.com> wrote: > we are adding new device types all the time. > no point in trying to list them all in the charter. > > Signed-off-by: Michael S. Tsirkin <mst@redhat.com> > Reviewed-by: Cornelia Huck <cohuck@redhat.com> > --- > charter.html 17 +---------------- > 1 file changed, 1 insertion(+), 16 deletions(-) > > diff --git a/charter.html b/charter.html > index 38cad98..82fb981 100644 > --- a/charter.html > +++ b/charter.html > @@ -80,22 +80,7 @@ > Specification of device-specific configuration. > <ol class="vanilla-lower-alpha"> > <li> > - For network devices. > - </li> > - <li> > - For block storage devices. > - </li> > - <li> > - For entropy devices. > - </li> > - <li> > - For console devices. > - </li> > - <li> > - For memory ballooning devices. > - </li> > - <li> > - For SCSI endpoint devices. > + Normative requirements for specified device types. > </li> Does it make sense to keep the list with only a single element? > <li> > Non-normative advice for designing new device types. I believe the the rest of the items starting with the one immediately above should be moved up one level higher. These don't seem to be sub deliverables of 'device-specific configuration' but top level deliverables... Regards, Halil


  • 13.  Re: [virtio] [PATCH v2 06/17] charter: drop attempts to list all devices

    Posted 02-09-2021 10:02
    On Mon, Feb 08, 2021 at 05:15:55PM +0100, Halil Pasic wrote: > On Mon, 8 Feb 2021 07:15:57 -0500 > "Michael S. Tsirkin" <mst@redhat.com> wrote: > > > we are adding new device types all the time. > > no point in trying to list them all in the charter. > > > > Signed-off-by: Michael S. Tsirkin <mst@redhat.com> > > Reviewed-by: Cornelia Huck <cohuck@redhat.com> > > --- > > charter.html 17 +---------------- > > 1 file changed, 1 insertion(+), 16 deletions(-) > > > > diff --git a/charter.html b/charter.html > > index 38cad98..82fb981 100644 > > --- a/charter.html > > +++ b/charter.html > > @@ -80,22 +80,7 @@ > > Specification of device-specific configuration. > > <ol class="vanilla-lower-alpha"> > > <li> > > - For network devices. > > - </li> > > - <li> > > - For block storage devices. > > - </li> > > - <li> > > - For entropy devices. > > - </li> > > - <li> > > - For console devices. > > - </li> > > - <li> > > - For memory ballooning devices. > > - </li> > > - <li> > > - For SCSI endpoint devices. > > + Normative requirements for specified device types. > > </li> > > Does it make sense to keep the list with only a single element? > > > <li> > > Non-normative advice for designing new device types. > > I believe the the rest of the items starting with the one immediately > above should be moved up one level higher. These don't seem to be sub > deliverables of 'device-specific configuration' but top level > deliverables... Well if you look at the spec they are all under section 5 Device Types. The only exception is Appendix B. Creating New Device Types. I will move that one out. > Regards, > Halil


  • 14.  Re: [virtio] [PATCH v2 06/17] charter: drop attempts to list all devices

    Posted 02-09-2021 11:56
      |   view attached
    On Tue, 9 Feb 2021 05:02:10 -0500 "Michael S. Tsirkin" <mst@redhat.com> wrote: > On Mon, Feb 08, 2021 at 05:15:55PM +0100, Halil Pasic wrote: > > On Mon, 8 Feb 2021 07:15:57 -0500 > > "Michael S. Tsirkin" <mst@redhat.com> wrote: > > > > > we are adding new device types all the time. > > > no point in trying to list them all in the charter. > > > > > > Signed-off-by: Michael S. Tsirkin <mst@redhat.com> > > > Reviewed-by: Cornelia Huck <cohuck@redhat.com> > > > --- > > > charter.html 17 +---------------- > > > 1 file changed, 1 insertion(+), 16 deletions(-) > > > > > > diff --git a/charter.html b/charter.html > > > index 38cad98..82fb981 100644 > > > --- a/charter.html > > > +++ b/charter.html > > > @@ -80,22 +80,7 @@ > > > Specification of device-specific configuration. > > > <ol class="vanilla-lower-alpha"> > > > <li> > > > - For network devices. > > > - </li> > > > - <li> > > > - For block storage devices. > > > - </li> > > > - <li> > > > - For entropy devices. > > > - </li> > > > - <li> > > > - For console devices. > > > - </li> > > > - <li> > > > - For memory ballooning devices. > > > - </li> > > > - <li> > > > - For SCSI endpoint devices. > > > + Normative requirements for specified device types. > > > </li> > > > > Does it make sense to keep the list with only a single element? > > > > > <li> > > > Non-normative advice for designing new device types. > > > > I believe the the rest of the items starting with the one immediately > > above should be moved up one level higher. These don't seem to be sub > > deliverables of 'device-specific configuration' but top level > > deliverables... > > Well if you look at the spec they are all under section > 5 Device Types. The only exception is > Appendix B. Creating New Device Types. > I will move that one out. > What confuses my is the configuration word in the phrase 'device-specific configuration'. I assumed that is about the config space, but it seems your intention for deliverable 2 is to cover everything that is device type specific (config space layout, virtqueues and their purpose, the communication protocol between driver and device (message formats, etc)). I had something like this in mind (please compare to the attachment): 4 Deliverables 1 Specification of feature negotiation, configuration and queues, from both driver and device points of view. 1 Specifically for virtio over PCI. 2 Specifically for virtio over mmio. 3 Specifically for virtio over channel I/O. 4 Specifically for other transports as decided by TC. 2 Normative requirements for specified device types. 3 Non-normative advice for designing new device types. 4 List of reserved device numbers for non-specified device types. (This section is likely to see ongoing maintenance). 5 List of reserved feature numbers for non-specified features for each device type. (This section is likely to see ongoing maintenance). 6 Non-normative code examples for operation of driver/device side of buffers. 7 Non-normative guide for creating devices and drivers which also support a legacy mode. > Attachment: Screen Shot 2021-02-09 at 12.26.32.png Description: PNG image


  • 15.  [PATCH v2 07/17] charter: reserved id/feature list has nothing to do with 2.0

    Posted 02-08-2021 12:16
    Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Reviewed-by: Cornelia Huck <cohuck@redhat.com> --- charter.html 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/charter.html b/charter.html index 82fb981..7f1583e 100644 --- a/charter.html +++ b/charter.html @@ -86,10 +86,10 @@ Non-normative advice for designing new device types. </li> <li> - List of reserved device numbers for non-specified device types. (This section is likely to see ongoing maintenance before 2.0). + List of reserved device numbers for non-specified device types. (This section is likely to see ongoing maintenance). </li> <li> - List of reserved feature numbers for non-specified features for each device type. (This section is likely to see ongoing maintenance before 2.0). + List of reserved feature numbers for non-specified features for each device type. (This section is likely to see ongoing maintenance). </li> </ol> </li> -- MST


  • 16.  Re: [virtio] [PATCH v2 07/17] charter: reserved id/feature list has nothing to do with 2.0

    Posted 02-08-2021 21:31
    On Mon, 8 Feb 2021 07:16:00 -0500 "Michael S. Tsirkin" <mst@redhat.com> wrote: > Signed-off-by: Michael S. Tsirkin <mst@redhat.com> > Reviewed-by: Cornelia Huck <cohuck@redhat.com> Reviewed-by: Halil Pasic <pasic@linux.ibm.com>


  • 17.  [PATCH v2 08/17] charter: explain what legacy is in the background section

    Posted 02-08-2021 12:16
    Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Reviewed-by: Cornelia Huck <cohuck@redhat.com> --- charter.html 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/charter.html b/charter.html index 7f1583e..f3a34f3 100644 --- a/charter.html +++ b/charter.html @@ -35,7 +35,7 @@ A 1.0 Specification </p> <p> - With the 1.0 Specification, the goal of the OASIS Virtual I/O Device (VIRTIO) Technical Committee was to keep the good, discard the bad, and make the ugly optional. In particular, the Committee tried not to break too much, and (with the exception of the mmio transport) the specification is designed to make it possible for devices to support both 1.0 compliant and legacy guest drivers. + With the 1.0 Specification, the goal of the OASIS Virtual I/O Device (VIRTIO) Technical Committee was to keep the good, discard the bad, and make the ugly optional. The "Virtio PCI Card Specification" 0.9.5, was used as a starting point (referred to as "legacy"). In particular, the Committee tried not to break too much, and (with the exception of the mmio transport) the specification is designed to make it possible for devices to support both 1.0 compliant and legacy guest drivers. </p> <p> 1.X Specifications -- MST


  • 18.  [PATCH v2 09/17] charter: update on deliverables

    Posted 02-08-2021 12:16
    we don't have multiple documents. we expect to deliver specifications periodically. Signed-off-by: Michael S. Tsirkin <mst@redhat.com> --- charter.html 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/charter.html b/charter.html index f3a34f3..e3c8cf6 100644 --- a/charter.html +++ b/charter.html @@ -101,7 +101,7 @@ </li> </ol> <p> - We anticipate deliverables (1) and (2) to be a single work, and (3) and (4) to be separate works. The projected delivery dates are 12 to 16 months after the first meeting. + The projected delivery dates for the specifications are every 12 to 16 months. </p> </li> <li> -- MST


  • 19.  Re: [virtio] [PATCH v2 09/17] charter: update on deliverables

    Posted 02-08-2021 12:22
    On Mon, 8 Feb 2021 07:16:05 -0500 "Michael S. Tsirkin" <mst@redhat.com> wrote: > we don't have multiple documents. > we expect to deliver specifications periodically. > > Signed-off-by: Michael S. Tsirkin <mst@redhat.com> > --- > charter.html 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) Reviewed-by: Cornelia Huck <cohuck@redhat.com>


  • 20.  Re: [virtio] [PATCH v2 09/17] charter: update on deliverables

    Posted 02-08-2021 21:42
    On Mon, 8 Feb 2021 07:16:05 -0500 "Michael S. Tsirkin" <mst@redhat.com> wrote: > we don't have multiple documents. > we expect to deliver specifications periodically. > > Signed-off-by: Michael S. Tsirkin <mst@redhat.com> > --- > charter.html 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/charter.html b/charter.html > index f3a34f3..e3c8cf6 100644 > --- a/charter.html > +++ b/charter.html > @@ -101,7 +101,7 @@ > </li> > </ol> > <p> > - We anticipate deliverables (1) and (2) to be a single work, and (3) and (4) to be separate works. The projected delivery dates are 12 to 16 months after the first meeting. > + The projected delivery dates for the specifications are every 12 to 16 months. Maybe we could explain that we disseminate all deliverable in a single document. I.e. how about: All the above listed deliverables are expected to continue to be disseminated together as a single document called "Virtual I/O Device (VIRTIO)", with projected delivery period of 12 to 16 months per release. > </p> > </li> > <li>


  • 21.  Re: [virtio] [PATCH v2 09/17] charter: update on deliverables

    Posted 02-08-2021 23:37
    On Mon, Feb 08, 2021 at 10:41:57PM +0100, Halil Pasic wrote: > On Mon, 8 Feb 2021 07:16:05 -0500 > "Michael S. Tsirkin" <mst@redhat.com> wrote: > > > we don't have multiple documents. > > we expect to deliver specifications periodically. > > > > Signed-off-by: Michael S. Tsirkin <mst@redhat.com> > > --- > > charter.html 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/charter.html b/charter.html > > index f3a34f3..e3c8cf6 100644 > > --- a/charter.html > > +++ b/charter.html > > @@ -101,7 +101,7 @@ > > </li> > > </ol> > > <p> > > - We anticipate deliverables (1) and (2) to be a single work, and (3) and (4) to be separate works. The projected delivery dates are 12 to 16 months after the first meeting. > > + The projected delivery dates for the specifications are every 12 to 16 months. > > Maybe we could explain that we disseminate all deliverable in a single > document. I.e. how about: > > All the above listed deliverables are expected to continue to > be disseminated together as a single document called "Virtual I/O > Device (VIRTIO)", with projected delivery period of 12 to 16 > months per release. Don't really see a reason to nail us to a specific split up in the charter. E.g. if we finally get around to create and upload example code, it might make sense as a separate file that can actually be compiled. > > </p> > > </li> > > <li>


  • 22.  [PATCH v2 10/17] charter: add motivation for changes made since 1.0

    Posted 02-08-2021 12:16
    Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Reviewed-by: Cornelia Huck <cohuck@redhat.com> --- charter.html 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/charter.html b/charter.html index e3c8cf6..6b35766 100644 --- a/charter.html +++ b/charter.html @@ -41,7 +41,12 @@ 1.X Specifications </p> <p> - With the 1.1, 1.2 and future revisions of the Specification, we aim to evolve this standard further, while both continuing to honor the goals of the 1.0 Specification and to include new objectives. + Support for new technologies often calls for extensions to the standard. For example, + as technologies such as nested virtualization and hardware-based + implementations of VIRTIO devices became popular, these devices are no longer + necessarily part of a hypervisor. This in turn requires a strong commitment to + driver and device compatibility, as well as to driver and device security. + With the 1.1, 1.2 and future revisions of the Specification, we aim to evolve the VIRTIO standard further, addressing such new requirements while both continuing to honor the goals of the 1.0 Specification and including new objectives. </p> </li> <li> -- MST


  • 23.  Re: [virtio] [PATCH v2 10/17] charter: add motivation for changes made since 1.0

    Posted 02-08-2021 21:43
    On Mon, 8 Feb 2021 07:16:07 -0500 "Michael S. Tsirkin" <mst@redhat.com> wrote: > Signed-off-by: Michael S. Tsirkin <mst@redhat.com> > Reviewed-by: Cornelia Huck <cohuck@redhat.com> Reviewed-by: Halil Pasic <pasic@linux.ibm.com>


  • 24.  [PATCH v2 11/17] charter: update to mention 1.X instead of 0.9, 2.0

    Posted 02-08-2021 12:16
    0.9 is no longer relevant. As for 2.0, let's stick to documenting what we know we plan to do, and not speculate on what we might do in indefinitely future. Also, drop some idiomatic humor - while fun, its meaning is not immediately obvious for non-native english speakers. Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Reviewed-by: Cornelia Huck <cohuck@redhat.com> --- charter.html 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/charter.html b/charter.html index 6b35766..641f5c3 100644 --- a/charter.html +++ b/charter.html @@ -52,11 +52,13 @@ <li> Scope <p> - The "Virtio PCI Card Specification" 0.9.5, minus the Appendix H, shall be used as a starting point (referred to as "legacy"). Note that we expect the final output of this TC to be incompatible with that specification, though it will be possible for virtual devices to support both legacy and modern guest drivers. + The TC will develop and produce versions 1.X of the OASIS Virtual I/O Device (VIRTIO) OASIS Standard by refining and documenting existing implementations and practice. </p> <p> - The TC will produce an OASIS Standard by refining and documenting existing implementations and practice. After publication of the initial OASIS Standard, the TC may choose to develop a Version 2.0 standard that builds on lessons learned and identified trends and that may result in a significantly different architecture and approach. Until then, the TC shall not throw out the baby with the bathwater, boil the ocean, or embark on a PhD research topic. </p> + <p> + Starting from version 1.1, each version of the specification shall be used as a starting point for the development of the next version of the specification. + </p> <p> The TC will consider one or more buses for virtual devices, including PCI. It will consider various kinds of devices, including network devices. Each part of the OASIS Standard will be considered in terms of portability, simplicity, least-surprise for driver authors, extensibility and performance. In particular, the effect of future radical extensions (such as layout changes) will be considered. </p> -- MST


  • 25.  Re: [virtio] [PATCH v2 11/17] charter: update to mention 1.X instead of 0.9, 2.0

    Posted 02-08-2021 22:06
    On Mon, 8 Feb 2021 07:16:09 -0500 "Michael S. Tsirkin" <mst@redhat.com> wrote: > 0.9 is no longer relevant. As for 2.0, let's stick to documenting what > we know we plan to do, and not speculate on what we might do in > indefinitely future. > > Also, drop some idiomatic humor - while fun, its meaning is not > immediately obvious for non-native english speakers. > > Signed-off-by: Michael S. Tsirkin <mst@redhat.com> > Reviewed-by: Cornelia Huck <cohuck@redhat.com> Reviewed-by: Halil Pasic <pasic@linux.ibm.com>


  • 26.  [PATCH v2 12/17] charter: document our focus on compatibility

    Posted 02-08-2021 12:16
    This has been a FAQ for a long time. Let's address this. Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Reviewed-by: Cornelia Huck <cohuck@redhat.com> --- charter.html 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/charter.html b/charter.html index 641f5c3..8088dd4 100644 --- a/charter.html +++ b/charter.html @@ -59,6 +59,20 @@ <p> Starting from version 1.1, each version of the specification shall be used as a starting point for the development of the next version of the specification. </p> + <p> + Note that we expect the output of this TC to be compatible with all previous versions of the specification, such that + compliant devices and drivers remain compliant with future versions of the specification. + In particular, special care will be taken such that drivers compliant with a certain version of the specification can also support devices compliant with all past versions of the specification, and vice versa. + </p> + <p> + When correcting defects in the specification, e.g. by adding new normative statements, the TC will + also take special care to avoid declaring existing working implementations non-compliant + as far as possible. + The TC will take into account factors such as existance and prevalence of implementations with the + defective behaviour and whether these implementations are working and robust. + When in doubt, the TC will err on the conservative side, such as by adding new feature bits + or by making the corrected behaviour recommended but not mandatory. + </p> <p> The TC will consider one or more buses for virtual devices, including PCI. It will consider various kinds of devices, including network devices. Each part of the OASIS Standard will be considered in terms of portability, simplicity, least-surprise for driver authors, extensibility and performance. In particular, the effect of future radical extensions (such as layout changes) will be considered. </p> -- MST


  • 27.  [PATCH v2 13/17] charter: TC as registrar for device IDs/features

    Posted 02-08-2021 12:16
    Already the case, let's document this is in scope. Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Reviewed-by: Cornelia Huck <cohuck@redhat.com> --- charter.html 1 + 1 file changed, 1 insertion(+) diff --git a/charter.html b/charter.html index 8088dd4..2cd6cc8 100644 --- a/charter.html +++ b/charter.html @@ -55,6 +55,7 @@ The TC will develop and produce versions 1.X of the OASIS Virtual I/O Device (VIRTIO) OASIS Standard by refining and documenting existing implementations and practice. </p> <p> + The TC will also act as a registrar for the list of reserved device numbers for non-specified device types, as well as the list of reserved feature numbers for non-specified features for each device type. </p> <p> Starting from version 1.1, each version of the specification shall be used as a starting point for the development of the next version of the specification. -- MST


  • 28.  [PATCH v2 14/17] chater: document what we care about in changes

    Posted 02-08-2021 12:16
    add compatibility, securiry. layout changes need not be a drasctic change if done carefully. Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Reviewed-by: Cornelia Huck <cohuck@redhat.com> --- charter.html 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/charter.html b/charter.html index 2cd6cc8..2eaa6f4 100644 --- a/charter.html +++ b/charter.html @@ -75,7 +75,7 @@ or by making the corrected behaviour recommended but not mandatory. </p> <p> - The TC will consider one or more buses for virtual devices, including PCI. It will consider various kinds of devices, including network devices. Each part of the OASIS Standard will be considered in terms of portability, simplicity, least-surprise for driver authors, extensibility and performance. In particular, the effect of future radical extensions (such as layout changes) will be considered. + The TC will consider one or more buses for virtual devices, including PCI. It will consider various kinds of devices, including network devices. Each part of the OASIS Standard will be considered in terms of portability, simplicity, least-surprise for driver authors, security, compatibility, extensibility and performance. In particular, the effect of future extensions (such as layout changes) will be considered. </p> </li> <li> -- MST


  • 29.  [PATCH v2 15/17] charter: driver/device terminology

    Posted 02-08-2021 12:16
    Use terminology consistent with spec. Say driver/device and not guest/host. Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Reviewed-by: Cornelia Huck <cohuck@redhat.com> --- charter.html 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/charter.html b/charter.html index 2eaa6f4..d593222 100644 --- a/charter.html +++ b/charter.html @@ -116,7 +116,7 @@ </ol> </li> <li> - Non-normative code examples for operation of guest/host side of buffers. + Non-normative code examples for operation of driver/device side of buffers. </li> <li> Non-normative guide for creating devices which also support previous mode(s). -- MST


  • 30.  [PATCH v2 16/17] charter: legacy mode terminology

    Posted 02-08-2021 12:16
    Consistent with spec, say legacy and not previous mode. Signed-off-by: Michael S. Tsirkin <mst@redhat.com> --- charter.html 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/charter.html b/charter.html index d593222..bb40070 100644 --- a/charter.html +++ b/charter.html @@ -119,7 +119,7 @@ Non-normative code examples for operation of driver/device side of buffers. </li> <li> - Non-normative guide for creating devices which also support previous mode(s). + Non-normative guide for creating devices and drivers which also support a legacy mode. </li> </ol> <p> -- MST


  • 31.  Re: [virtio] [PATCH v2 16/17] charter: legacy mode terminology

    Posted 02-08-2021 12:23
    On Mon, 8 Feb 2021 07:16:21 -0500 "Michael S. Tsirkin" <mst@redhat.com> wrote: > Consistent with spec, say legacy and not previous mode. > > Signed-off-by: Michael S. Tsirkin <mst@redhat.com> > --- > charter.html 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > Reviewed-by: Cornelia Huck <cohuck@redhat.com>


  • 32.  [PATCH v2 17/17] charter: audience terminology

    Posted 02-08-2021 12:16
    It's ok to mention hypervisors but list device developers as audience as well. Devices are no longer always part of the hypervisor. Signed-off-by: Michael S. Tsirkin <mst@redhat.com> --- charter.html 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/charter.html b/charter.html index bb40070..4bf3fba 100644 --- a/charter.html +++ b/charter.html @@ -135,7 +135,7 @@ <li> Audience <p> - Developers of hypervisors and device driver authors. + Developers of devices, hypervisors and device drivers. </p> </li> <li> -- MST


  • 33.  Re: [virtio] [PATCH v2 17/17] charter: audience terminology

    Posted 02-08-2021 12:24
    On Mon, 8 Feb 2021 07:16:23 -0500 "Michael S. Tsirkin" <mst@redhat.com> wrote: > It's ok to mention hypervisors but list device developers as audience as > well. Devices are no longer always part of the hypervisor. > > Signed-off-by: Michael S. Tsirkin <mst@redhat.com> > --- > charter.html 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) Reviewed-by: Cornelia Huck <cohuck@redhat.com>


  • 34.  Re: [virtio] [PATCH v2 00/17] admin: reconfirming the TC charter

    Posted 02-08-2021 12:29
    On Mon, 8 Feb 2021 07:15:43 -0500 "Michael S. Tsirkin" <mst@redhat.com> wrote: > As previously reported > https://lists.oasis-open.org/archives/virtio/202101/msg00000.html > the latest revisions to the TC Process and the OASIS > Committee Operations Process include new requirements to periodically confirm > the TC charter and appoint or reappoint the TC chair(s). > > Our current charter can be found here: > https://www.oasis-open.org/committees/virtio/charter.php > > Also included as patch 1 in the series. > Some of it is a bit out of date. E.g. it talks of 1.0 in a future > tense. There is nothing major though. > > I therefore propose the following clarifications to the charter. > I did my best to address previous comments by Cornelia. > > Please review, we need to finish the process by March. My idea is to > eventually continue the TC through a charter clarification (Section > 1.8). LGTM. I think we need to request a special majority vote for this?


  • 35.  Re: [virtio] [PATCH v2 00/17] admin: reconfirming the TC charter

    Posted 02-08-2021 12:55
    On Mon, Feb 08, 2021 at 01:28:53PM +0100, Cornelia Huck wrote: > On Mon, 8 Feb 2021 07:15:43 -0500 > "Michael S. Tsirkin" <mst@redhat.com> wrote: > > > As previously reported > > https://lists.oasis-open.org/archives/virtio/202101/msg00000.html > > the latest revisions to the TC Process and the OASIS > > Committee Operations Process include new requirements to periodically confirm > > the TC charter and appoint or reappoint the TC chair(s). > > > > Our current charter can be found here: > > https://www.oasis-open.org/committees/virtio/charter.php > > > > Also included as patch 1 in the series. > > Some of it is a bit out of date. E.g. it talks of 1.0 in a future > > tense. There is nothing major though. > > > > I therefore propose the following clarifications to the charter. > > I did my best to address previous comments by Cornelia. > > > > Please review, we need to finish the process by March. My idea is to > > eventually continue the TC through a charter clarification (Section > > 1.8). > > LGTM. > > I think we need to request a special majority vote for this? We do. Let me post a full version for review too, then give people some more time to comment. -- MST


  • 36.  Re: [PATCH v2 00/17] admin: reconfirming the TC charter

    Posted 02-08-2021 12:58
    On Mon, Feb 08, 2021 at 07:15:45AM -0500, Michael S. Tsirkin wrote: > As previously reported > https://lists.oasis-open.org/archives/virtio/202101/msg00000.html > the latest revisions to the TC Process and the OASIS > Committee Operations Process include new requirements to periodically confirm > the TC charter and appoint or reappoint the TC chair(s). > > Our current charter can be found here: > https://www.oasis-open.org/committees/virtio/charter.php > > Also included as patch 1 in the series. > Some of it is a bit out of date. E.g. it talks of 1.0 in a future > tense. There is nothing major though. > > I therefore propose the following clarifications to the charter. > I did my best to address previous comments by Cornelia. > > Please review, we need to finish the process by March. My idea is to > eventually continue the TC through a charter clarification (Section > 1.8). Full updated version attached below. If not one objects, I'll start a ballot a week or so from now. ---- <html> <title>OASIS Virtual I/O Device (VIRTIO) Technical Committee TC charter</title> <body> <ol id="charter-outline" class="bold-lower-alpha"> <li> TC Name <p>OASIS Virtual I/O Device (VIRTIO) Technical Committee</p> </li> <li>Statement of Purpose <p> Background: </p> <p> Hardware virtualization allows multiple operating systems ("guests") to share the same hardware ("host") managed by host software ("hypervisor"). </p> <p> These guests need networks, storage, consoles and similar but non-virtualization-aware standard devices cannot be shared, or guests may not be permitted to access host devices at all. The simplest solution is to emulate a device expected by the guest operating system, but this can be slow and/or complicated. As most operating systems have facilities for adding drivers for new physical hardware, we can use the same facilities to add drivers for devices which are easier and/or more efficient to implement in software. </p> <p> As every hypervisor is different, they tend to implement hypervisor-specific devices, requiring every guest to support a new device for that environment. For example, in 2013 Linux supported completely separate drivers for eight different virtualization platforms, with most drivers being sub-optimal. In 2007, an attempt was made to implement a hypervisor and OS-agnostic device model in Linux guests and the KVM hypervisor over the standard PCI bus. This is now supported by multiple other hypervisors. </p> <p> A Draft Specification </p> <p> In 2009, as interest accumulated, the "Virtio PCI Card Specification" was published, with appendices for network, block storage and console devices. The emphasis was that virtual devices should be simple, look like driver authors expect physical devices to look, should be extensible, and that they should perform well. </p> <p> Even at the time, there were implementations of virtio devices over non-PCI transports, and in 2011 the simplified "mmio" transport was added as an Appendix, as well as a "remote processor message" device which is actually used to communicate to a separate, physical CPU, rather than a virtual guest. </p> <p> The years of experience have highlighted some of the implementation and design mistakes: enhancements have worked around many of them, but at cost of simplicity. Implementation bugs have also caused occasional anguish. </p> <p> A 1.0 Specification </p> <p> With the 1.0 Specification, the goal of the OASIS Virtual I/O Device (VIRTIO) Technical Committee was to keep the good, discard the bad, and make the ugly optional. The "Virtio PCI Card Specification" 0.9.5, was used as a starting point (referred to as "legacy"). In particular, the Committee tried not to break too much, and (with the exception of the mmio transport) the specification is designed to make it possible for devices to support both 1.0 compliant and legacy guest drivers. </p> <p> 1.X Specifications </p> <p> Support for new technologies often calls for extensions to the standard. For example, as technologies such as nested virtualization and hardware-based implementations of VIRTIO devices became popular, these devices are no longer necessarily part of a hypervisor. This in turn requires a strong commitment to driver and device compatibility, as well as to driver and device security. With the 1.1, 1.2 and future revisions of the Specification, we aim to evolve the VIRTIO standard further, addressing such new requirements while both continuing to honor the goals of the 1.0 Specification and including new objectives. </p> </li> <li> Scope <p> The TC will develop and produce versions 1.X of the OASIS Virtual I/O Device (VIRTIO) OASIS Standard by refining and documenting existing implementations and practice. </p> <p> The TC will also act as a registrar for the list of reserved device numbers for non-specified device types, as well as the list of reserved feature numbers for non-specified features for each device type. </p> <p> Starting from version 1.1, each version of the specification shall be used as a starting point for the development of the next version of the specification. </p> <p> Note that we expect the output of this TC to be compatible with all previous versions of the specification, such that compliant devices and drivers remain compliant with future versions of the specification. In particular, special care will be taken such that drivers compliant with a certain version of the specification can also support devices compliant with all past versions of the specification, and vice versa. </p> <p> When correcting defects in the specification, e.g. by adding new normative statements, the TC will also take special care to avoid declaring existing working implementations non-compliant as far as possible. The TC will take into account factors such as existance and prevalence of implementations with the defective behaviour and whether these implementations are working and robust. When in doubt, the TC will err on the conservative side, such as by adding new feature bits or by making the corrected behaviour recommended but not mandatory. </p> <p> The TC will consider one or more buses for virtual devices, including PCI. It will consider various kinds of devices, including network devices. Each part of the OASIS Standard will be considered in terms of portability, simplicity, least-surprise for driver authors, security, compatibility, extensibility and performance. In particular, the effect of future extensions (such as layout changes) will be considered. </p> </li> <li> Deliverables <ol class="spaced decimal"> <li> Specification of feature negotiation, configuration and queues, from both driver and device points of view. <ol class="vanilla-lower-alpha"> <li> Specifically for virtio over PCI. </li> <li> Specifically for virtio over mmio. </li> <li> Specifically for virtio over channel I/O. </li> <li> Specifically for other transports as decided by TC. </li> </ol> </li> <li> Specification of device-specific configuration. <ol class="vanilla-lower-alpha"> <li> Normative requirements for specified device types. </li> <li> Non-normative advice for designing new device types. </li> <li> List of reserved device numbers for non-specified device types. (This section is likely to see ongoing maintenance). </li> <li> List of reserved feature numbers for non-specified features for each device type. (This section is likely to see ongoing maintenance). </li> </ol> </li> <li> Non-normative code examples for operation of driver/device side of buffers. </li> <li> Non-normative guide for creating devices and drivers which also support a legacy mode. </li> </ol> <p> The projected delivery dates for the specifications are every 12 to 16 months. </p> </li> <li> IPR Mode <p> Non-Assertion Mode </p> </li> <li> Audience <p> Developers of devices, hypervisors and device drivers. </p> </li> <li> Language <p> US English. </p> </li> </ol> </body> </html>