OASIS Virtual I/O Device (VIRTIO) TC

 View Only
  • 1.  admin: reconfirming the TC charter

    Posted 01-19-2021 09:30
    As reported in November ( https://lists.oasis-open.org/archives/members/202011/msg00011.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 pasted below. 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. 1. TC Name OASIS Virtual I/O Device (VIRTIO) Technical Committee 2. Statement of Purpose Background: Hardware virtualization allows multiple operating systems ("guests") to share the same hardware ("host") managed by host software ("hypervisor"). 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. 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). A Draft Specification 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. 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. 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. A 1.0 Specification 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. 3. Scope 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 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. 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. 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 other transports as decided by TC. 2. Specification of device-specific configuration. 1. For network devices. 2. For block storage devices. 3. For entropy devices. 4. For console devices. 5. For memory ballooning devices. 6. For SCSI endpoint devices. 7. Non-normative advice for designing new device types. 8. List of reserved device numbers for non-specified device types. (This section is likely to see ongoing maintenance before 2.0). 9. List of reserved feature numbers for non-specified features for each device type. (This section is likely to see ongoing maintenance before 2.0). 3. Non-normative code examples for operation of guest/host side of buffers. 4. Non-normative guide for creating devices which also support previous mode(s). 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. 5. IPR Mode Non-Assertion Mode 6. Audience Developers of hypervisors and device driver authors. 7. Language US English. -- MST


  • 2.  Re: [virtio] admin: reconfirming the TC charter

    Posted 01-19-2021 18:22
    On Tue, 19 Jan 2021 04:30:15 -0500 "Michael S. Tsirkin" <mst@redhat.com> wrote: > As reported in November ( https://lists.oasis-open.org/archives/members/202011/msg00011.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 pasted below. > 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 think we should make some tweaks, some comments below. > > > 1. TC Name > OASIS Virtual I/O Device (VIRTIO) Technical Committee > > 2. Statement of Purpose > Background: > > Hardware virtualization allows multiple operating systems ("guests") to share the same hardware ("host") managed by host software ("hypervisor"). > > 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. > > 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). I think I'd drop that whole paragraph, it seems to be mostly of historic interest. > > A Draft Specification Maybe add (from above) "Starting in 2007, a hypervisor and operating system agnostic device model was implemented in Linux guests and the KVM hypervisor." > > 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. > > 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. > > 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. > > A 1.0 Specification > > 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. What about: "A Standardized Specification Our goal was to keep the good, discard the bad, and make the ugly optional. In particular, we aimed to not break too much, and ensure it's possible for devices to support both standard compliant and legacy guest drivers. We aim to evolve this standard further, while both continuing to honor this goal and to include new objectives like hardware-based device implementations." > > 3. Scope > 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. s/shall be used/has been used/ "The output of this TC will be incompatible with that specification, but it shall continue to be possible for virtual devices and drivers to to support both legacy and standard-conforming drivers and devices." ? > > 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. > > 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. > > 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. Do we want to list ccw explicitly here as well? > 3. Specifically for other transports as decided by TC. > 2. Specification of device-specific configuration. > 1. For network devices. > 2. For block storage devices. > 3. For entropy devices. > 4. For console devices. > 5. For memory ballooning devices. > 6. For SCSI endpoint devices. "For any further devices that are deemed useful." ? > 7. Non-normative advice for designing new device types. > 8. List of reserved device numbers for non-specified device types. (This section is likely to see ongoing maintenance before 2.0). > 9. List of reserved feature numbers for non-specified features for each device type. (This section is likely to see ongoing maintenance before 2.0). > 3. Non-normative code examples for operation of guest/host side of buffers. > 4. Non-normative guide for creating devices which also support previous mode(s). > 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. Is that statement still useful? > > 5. IPR Mode > Non-Assertion Mode > > 6. Audience > Developers of hypervisors and device driver authors. > > 7. Language > US English. >


  • 3.  Re: [virtio] admin: reconfirming the TC charter

    Posted 01-19-2021 18:37
    On Tue, Jan 19, 2021 at 07:21:40PM +0100, Cornelia Huck wrote: > On Tue, 19 Jan 2021 04:30:15 -0500 > "Michael S. Tsirkin" <mst@redhat.com> wrote: > > > As reported in November ( https://lists.oasis-open.org/archives/members/202011/msg00011.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 pasted below. > > 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 think we should make some tweaks, some comments below. Will review. I think that as long as we are doing this, it is worth explaining that whenever we release a specification, then our charter is generally to make changes always be backwards and forwards compatible. Some exceptions can be made for example when handling obvious bugs, after making sure there's minimal practical impact. Also, how about we say that we plan to release every 12-16 months? -- MST


  • 4.  Re: [virtio] admin: reconfirming the TC charter

    Posted 01-19-2021 18:41
    On Tue, 19 Jan 2021 13:37:19 -0500 "Michael S. Tsirkin" <mst@redhat.com> wrote: > On Tue, Jan 19, 2021 at 07:21:40PM +0100, Cornelia Huck wrote: > > On Tue, 19 Jan 2021 04:30:15 -0500 > > "Michael S. Tsirkin" <mst@redhat.com> wrote: > > > > > As reported in November ( https://lists.oasis-open.org/archives/members/202011/msg00011.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 pasted below. > > > 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 think we should make some tweaks, some comments below. > > Will review. I think that as long as we are doing this, it is worth > explaining that whenever we release a specification, then > our charter is generally to make changes always be > backwards and forwards compatible. Some exceptions can be made > for example when handling obvious bugs, after making sure there's minimal > practical impact. Yes, that sounds good. > > Also, how about we say that we plan to release every 12-16 months? That's also ok with me.