[Rust-VMM] Device implementation in rust-vmm
sebastien.boeuf at intel.com
Wed Nov 20 16:43:02 UTC 2019
On Tue, 2019-11-19 at 10:46 +0000, Florescu, Andreea wrote:
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 .
With this trait merged we can now implement simple legacy devices such as the serial console. I added a PR  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?
I am okay with this approach as we don't really want to end up with a million different crates eventually. And from a Rust perspective, I guess the use of Rust features will make it easy to compile in only the devices needed by each VMM implementation.
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.
Rust-vmm mailing list
<mailto:Rust-vmm at lists.opendev.org>
Rust-vmm at lists.opendev.org
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Rust-vmm