Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Next Meeting Agenda 

Elevator Pitch

excerpt-include

2022-11-11 Project Stratos Meeting notes2022-11-11 Project Stratos Meeting notesnameAgenda

Establish virtio Project Stratos was our pathfinder project looking to establish VirtIO as the standard interface between hypervisors, freeing a mobile, industrial or automotive platform to migrate between hypervisors and reuse the backend implementation.

About this project

There is a growing trend towards virtualization in areas other than the traditional server environment. The server environment is uniform in nature, but as we move towards a richer ecosystem in automotive, medical, general mobile and the IoT spaces, more device abstractions are needed, and way richer organizations are needed:

  • In the automotive world, devices as different as FM radio and CAN bus need to be abstracted

  • Virtual Machine Monitor (VMM) may need to become a certifiable entity with real-time capabilities

  • Some deployment models are based on “stub VMs” to deal with hardware and keep the hypervisor mostly out of hardware handling

  • In automotive, VMs can be as diverse as Android (IVI, Automotive Grade Linux (e-cockpit), Apertis (ADAS)

  • Guaranteed performance of IO is a critical enabler in any use case

  • VMM / “safeOS” on cortex-A

  • VMM / “safeOS” on cortex-M

  • Virtio backends

    • in the hypervisor

    •  in a stub domain

    • n “primary” VM (mobile)

The conclusions of member discussions related to the above topics are:

  • Mobile and automotive share in common a need to resolve several missing abstractions such as clocks, RPMB, FM radio…

  • There are gaps in interfaces between VMs and hypervisor to deal with guaranteed IO performance

  • Commercial offerings will dominate the market. Yet, there is a need to define clear interfaces so that there is no coupling between VM, hypervisor, hardware, VMM architecture.

Project Stratos is working towards developing hypervisor agnostic abstract devices leveraging virtio and extending hypervisor interfaces and standards to allow all architectures.

The four key areas of interest are

  • High-performance Virtio interfaces

  • Virtual Machine Monitors with a safety island

  • Boot Orchestration

  • Written Standards for the hypercalls

Meetings & Calendar

Meeting Notes

Child pages (Children Display)
pageMeeting notes
sorttitle
reversetrue
first5

Calendar

. We helped upstream a number of VirtIO devices to the OASIS Specification as well front end drivers for the Linux Kernel. During the project we experimented with using Rust for backend implementations and eventually became maintainers of the Rust VMM vhost-device repository. The repository provides a number of vhost-user backends which we have run as backends for devices in guests running under a variety of hypervisors (pure QEMU emulation, KVM, Xen and Gunyah).

We also spent time investigating the impacts of virtualisation on networking and examining where in the stack delay and jitter can get introduced and if those can be mitigated by using Time Sensitive Networking (TSN).

While Project Stratos itself has come to an end Linaro is still heavily invested in furthering VirtIO as a technology and will continue to work with it under the auspices of our other projects. We are keeping the project infrastructure up for reference as well as proving a useful place to share patches for the various projects that want to enable VirtIO.

VirtIO Use Cases

Emulation

When bringing up new processor and SoC platforms being able to utilise VirtIO devices avoids the need to emulate existing (or invent toy) devices for basic networking and storage functionality. The same low impact to virtualisation also benefits emulation by avoiding costly MMIO emulation round-trips for setting up transactions.

HALs

One of the challenges of working in the heterogeneous world of SoCs is dealing with vendor kernel trees to support SoC specific hardware. A solution to this is to house your main workload in a generic guest image which uses VirtIO for its devices. The SoC specific drivers can be kept in a separate driver domain and act as an interface between a VirtIO backend for the main image and directly controlling the hardware. This way the main workload can be upgraded independently of the backends allowing it to progress to using newer kernel features.

Cloud Native Development

This extends the concept of having an abstracted HAL to allow the testing and verification of your workload to be done in the cloud. For example you may want to check your collision avoidance system works when fed a library of data from the cloud but not want to recertify everything once the workload is houses in your edge computing device. The use of a VirtIO abstraction allows the same software to be run in both cases.

rust-vmm work

rust-vmm is a collection of rust crates useful for building Virtual Machine Monitors. It is used as a basic for projects such as Firecracker, CrosVM and Cloud Hypervisor. While initially KVM focused it strives to be a multi-platform project.

Further Reading

Blog Posts and Talks

Calendar

We no longer have regular meetings for Stratos but we will add any upcoming open meetings discussing VirtIO to the calendar for ease of navigation. This calendar is displayed using UTC timezone with no DST offsets.

Easy html
theme{"label":"github","value":"github"}
contentByMode{"html":"<iframe src=\"https://calendar.google.com/calendar/embed?height=400&wkst=2&bgcolor=%23ffffff&ctz=UTC&showTitle=0&showPrint=0&showTabs=0&mode=AGENDA&showDate=1&src=Y19qN25naTFvOHJsb2ZrcGVkNHI1Y2g5OG12Z0Bncm91cC5jYWxlbmRhci5nb29nbGUuY29t&color=%23D81B60&showCalendars=0\" style=\"border-width:0\" width=\"100%\" height=\"400\" frameborder=\"0\" scrolling=\"no\"></iframe>","javascript":"","css":""}

All of the work is covered in Jira cards which you can view in the current sprint at the project home page and navigate from there: https://linaro.atlassian.net/jira/software/c/projects/STR/boards/145

Info

Details

Sub pages focusing on Use cases

Page Tree
rootDocumentation

Info


Contact

Meeting Archives

Child pages (Children Display)
pageMeeting notes
sorttitle
reversetrue
first5

Original Landing Page

Landing page before archiving the project

Contact

Info

Current Plan

The following items are on the project backlog but not currently planned. If you are interested in contributing to any of these items, please state your intention on the project's mailing list (found above)

Jira Legacy
serverSystem JIRA
columnskey,summary,type,created,updated,assignee,status,resolution,fixversions
maximumIssues20
jqlQueryproject = STR AND status in ("In Progress", ToDo, Review, Blocked)
serverId59107c6f-1e52-32bc-b58f-400d54bba998

 

Roadmap

https://docs.google.com/presentation/d/115SkBdfltqaMnLOMPbxMJa3xKNdV1NF_2g4oVrf86tc/edit#slide=id.gfd4da098aa_2_0

Achievements

https://docs.google.com/presentation/d/e/2PACX-1vS9kfF8qlysQjjwYCjgGxNFD6BMSUuoLm2sWOr_ajiCNrZnT7Jol1M8JSJG6_Nn1ztPhwjwbiE4qbfr/pub?start=false&loop=false&delayms=3000

Easy html macro
theme{"label":"solarized_dark","value":"solarized_dark"}
contentByMode{"html":"<!-- LOGOS-START|project=STR -->\n","javascript":"","css":""}
Easy html macro
contentByMode{"html":"<center><img height=120 src=\"https://static.linaro.org/common/member-logos/xilinx.jpg\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img height=120 src=\"https://static.linaro.org/common/member-logos/arm.jpg\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img height=120 src=\"https://static.linaro.org/common/member-logos/quic.jpg\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img height=120 src=\"https://static.linaro.org/common/member-logos/socionext.jpg\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</center>","javascript":"","css":""}
Easy html macrotheme{"label":"solarized_dark","value":"solarized_dark"}contentByMode{"html":"<!-- LOGOS-END -->\n","javascript":"","css":""}


Linaro Ltd, 2020