Skip to end of banner
Go to start of banner

Stratos Home (virtualization for zonal architectures)

Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 197 Next »

Elevator Pitch

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. 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).

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 brining 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

Meeting Archives

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

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.

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


Details

Sub pages focusing on Use cases




Linaro Ltd, 2020

  • No labels