2021-09-02 Project Stratos Sync Meeting notes
Participants
@Alex Bennée
@Peter Griffin
@Mathieu Poirier
@Akashi Takahiro
@Vincent Guittot
@Joakim Bech
@Jean-Philippe Brucker
@Matt Spencer (Deactivated)
Srivatsa
@Azzedine Touzni
Daina
@Randy Linnell
Agenda
Next cycle plan and roadmap
Approaches for hypervisor agnostic backends
Userspace with shim binary (original suggestion)
Userspace with compile time library
any point doing a C one?
should Rust be the target? Rust-vmm support for another hypervisor?
Userspace with kernel abstraction (ioreq/ioregion/eventfd, Linux only? what about mapping?)
Bare metal with compile time library (Rust)
proxy device
Any other interfaces to do (virtio-video ongoing, gpu/wayland seems complex)?
The “Demo”, scope it
Discussion topics
Alex: Done work on the specification, added backend, added thing to the kernel. Know people want to look at Radios etc. But there are other parts of the vision to look at, such as hypervisor agnosticism.
Had a discussion on the mailing list, compile-time libraries with a switch, push abstraction into the kernel.
Proxy device proposal from Akashi-san, deals with the abstraction
Matt- has anyone looked at virtio without a hypervisor, Alex - Windriver use RPC and shared memory space. Matt if I use virtio as a HAL, I may not want to run a Hypervisor. Alex - you won't get isolation. Matt resource-constrained devices want to use it.
Alex if we can get with working across hypervisors then it is easier to move to constrained devices.
Srivatsa - hypervisor agnostic work, is that the plan? Alex that is the purpose of this call, one idea, do a bare metal rust backend, probably Xen. Do this separately to userspace backends. Vincent, SCMI server is used in real cop processor, added vhost user, because we are userspace and the main purpose is to access clock registers it. I also put same server in a Zephyr VM. I have a bridge between guest and VM backend. Just want to prove SCMI backend in VM is working. Plan to have this work regardless to hypervisor. The message is small, Can we use fatvirt queue, we can specify where to put the memory.
Alex bare metal backends are less likely to be high bandwidth. Vincent vhost backends are using the Linux interface. Vincnet writing to virtio MMIO ring.
Srivatsa - and interest from cloud vendors, Alex not so much, interest in RustVMM backends. Alex it would be useful to run RustVMM on Xen.
Srivatsa - any need for more than simple backends, Alex, we could keep doing that, but feel we should look at bigger problems.
Akashi - vhost user lib is created by mmap, this will be passed to the front end. Don't think Zephyr can implement mmap.
Akashi-san
ivshared memory from jailhouse, like PCI device, can be used
a recent post on Argo in Xen, this is message protocol, don't share memory, hypervisor mediated copy
Alex not sure how easy to implement where there is no shared memory, virtio design is based on full mapping
Alex Argo may be an alternate transport, similar to fatvirt queue
Mathieu, we should use the rust backend. There are public examples.
Action items
Booting the same binary image on multiple SystemReady / TrustedSubstrate platforms: RPI4, QEMU, Socionext. I may create a TrustedSubstrate target in AGL for that end.