[Rust-VMM] Is it time to start implementing Xen bindings for rust-vmm?

Alex Bennée alex.bennee at linaro.org
Wed Sep 22 17:44:41 UTC 2021


David Woodhouse <dwmw2 at infradead.org> writes:

> [[S/MIME Signed Part:Undecided]]
> On Mon, 2021-09-13 at 13:44 +0100, Alex Bennée wrote:
>> Hi,
>> 
>> As we consider the next cycle for Project Stratos I would like to make
>> some more progress on hypervisor agnosticism for our virtio backends.
>> While we have implemented a number of virtio vhost-user backends using C
>> we've rapidly switched to using rust-vmm based ones for virtio-i2c,
>> virtio-rng and virtio-gpio. Given the interest in Rust for implementing
>> backends does it make sense to do some enabling work in rust-vmm to
>> support Xen?
>
> I like this idea.
>
> Somewhat separately, Alex Agache has already started some preliminary
> hacking on supporting Xen guests within rust-vmm (on top of Linux/KVM):
> https://github.com/alexandruag/vmm-reference/commits/xen

I'll be sending along a more detailed post once I've finished my
work breakdown but I'm currently envisioning two parts. A xen-sys crate
for the low level access that supports both ioctl and hypercall calls.
This would be useful for other projects such as stubdomains (think a
"bare-metal" RTOS with some sort of backend, uni-kernel style). It would
also be the lowest layer that rust-vmm can use to interact with the
hypervisor.

I'm aware the HyperV solution is to present a KVM-like ioctl interface
via the host kernel. However if we want generality with type-1
hypervisors we can't assume all will get suitable translation layers in
the kernel.

Fortunately for the time being our focus is on virtio backends so we
don't need to get directly involved in the hypervisor run loop... for
now.

> Being able to run on *actual* Xen would be good too. And we should also
> aspire to do guest-transparent live migration between the two hosting
> environments.
>
> Where relevant, it would be great to be able to share components (like
> emulation of the Xen PCI platform device, a completely single-tenant
> XenStore implementation dedicated to a single guest, perhaps PV
> netback/blkback and other things).

For Stratos portable virtio backends is one of our project goals.
>
>
> [[End of S/MIME Signed Part]]


-- 
Alex Bennée



More information about the Rust-vmm mailing list