[Rust-VMM] Device implementation in rust-vmm

Florescu, Andreea fandree at amazon.com
Tue Nov 19 10:46:55 UTC 2019

Hey everyone,

A couple of weeks ago we merged a trait for DeviceIo. This is very similar to what we have in CrosVM/Firecracker under the name IoBus and serves the same purpose. You can check the commit that introduced the trait for more context [1].

With this trait merged we can now implement simple legacy devices such as the serial console. I added a PR [2] for this, but it is still very much work in progress. This PR started another conversation regarding where to place the device emulation.

As far as I know we have two options:

- each device in its own crate/repository

- all commonly used devices in vm-device

We touched on this topic during the Bucharest rust-vmm meetup as well. Each of these options come with disadvantages. The one that I was mostly concerned about is bloating the vm-device with lots of devices that are not needed by all the VMMs using rust-vmm. There are ways to work around this problem, so during the meetup we agreed on adding device emulation in vm-device for now. If we get to the point where vm-device becomes unmanageable ( too many devices making the code hard to audit), we can move the device emulation out of the crate.

For people that didn't attend the meetup, what do you think about having the device emulation in vm-device?


[1] https://github.com/rust-vmm/vm-device/commit/21910a148a290fcebec98bf11df4410ef35662d1

[2] https://github.com/rust-vmm/vm-device/pull/15

Amazon Development Center (Romania) S.R.L. registered office: 27A Sf. Lazar Street, UBC5, floor 2, Iasi, Iasi County, 700045, Romania. Registered in Romania. Registration number J22/2621/2005.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.opendev.org/pipermail/rust-vmm/attachments/20191119/a8c64890/attachment.html>

More information about the Rust-vmm mailing list