[Rust-VMM] Summer of Code / Outreachy projects

Paolo Bonzini pbonzini at redhat.com
Fri Jan 18 10:06:52 UTC 2019


On 17/01/19 20:48, Cory Maccarrone wrote:
> A port seems like a much more tractable project than a rewrite for
> sure.  The KVM instruction emulator is more or less proven and works, so
> reason not to port it I think.  Agreed on the intern project, it would
> be great for that.

A better candidate for porting is the emulator embedded in QEMU for
Hypervisor.framework.  It's less complete (it doesn't attempt to cover
big real mode) and less optimized, but the code is very clean.

The question is what you'd use it for---that is, how you would embed it
in Firecracker or crosvm.  A complete port of Firecracker/crosvm to
Hypervisor.framework (which needs such an emulator) is a very large
project, even though some lessons can be learnt from QEMU.  I had a
pretty good GSoC student from 2017 and he used pretty much the whole
summer cleaning up code taken from Android emulator code and getting it
ready for inclusion in upstream QEMU.

It's of course possible to use the Hypervisor.framework emulator as an
experiment in adding Rust components to QEMU, but it's probably not what
the members of this list expect. :)

Paolo

> - Cory
> 
> On Thu, Jan 17, 2019 at 10:40 AM Anthony Liguori <aliguori at amazon.com
> <mailto:aliguori at amazon.com>> wrote:
> 
>     Paolo Bonzini <pbonzini at redhat.com <mailto:pbonzini at redhat.com>> writes:
> 
>     > On 17/01/19 19:07, Cory Maccarrone wrote:
>     >> One suggestion I might make would be a rust-implemented instruction
>     >> emulator for cracking open MMIOs.  Seems useful for VMMs in
>     general to me.
>     >
>     > That's part of the plans indeed, but the support for userspace MMIO
>     > emulation is not in upstream KVM yet.
> 
>     We you thinking a straight port of emulate.c to Rust or something from
>     scratch?
> 
>     I think a port is interesting as an intern project.  I think a new
>     emulator from scratch is a bit unrealistic as an intern project.
> 
>     Regards,
> 
>     Anthony Liguori
> 
>     >
>     > Paolo
>     >
>     >> On Wed, Jan 9, 2019 at 10:07 AM Paolo Bonzini
>     <pbonzini at redhat.com <mailto:pbonzini at redhat.com>
>     >> <mailto:pbonzini at redhat.com <mailto:pbonzini at redhat.com>>> wrote:
>     >>
>     >>     QEMU would be glad to host projects related to VMMs in Rust
>     as part of
>     >>     Google summer of Code and Outreachy.  This includes all of
>     Firecracker,
>     >>     CrosVM and common infrastructure that could be reused by multiple
>     >>     virtual machine monitors; with my QEMU hat, I would obviously
>     favor the
>     >>     latter :)).
>     >>
>     >>     An idea could be to migrate Firecracker and CrosVM to the
>     Fuchsia crates
>     >>     that were mentioned early here on the mailing list, and/or
>     implement a
>     >>     sample vhost-user client using whatever standard set of
>     crates are
>     >>     established.  Another possibility is PCI and virtio-pci in
>     Firecracker.
>     >>
>     >>     Thanks,
>     >>
>     >>     Paolo
>     >>
>     >>     _______________________________________________
>     >>     Rust-vmm mailing list
>     >>     Rust-vmm at lists.opendev.org
>     <mailto:Rust-vmm at lists.opendev.org>
>     <mailto:Rust-vmm at lists.opendev.org <mailto:Rust-vmm at lists.opendev.org>>
>     >>     http://lists.opendev.org/cgi-bin/mailman/listinfo/rust-vmm
>     >>
>     >>
>     >>
>     >> --
>     >> Cory Maccarrone | Staff Software Engineer | maccarro at google.com
>     <mailto:maccarro at google.com>
>     >> <mailto:maccarro at google.com <mailto:maccarro at google.com>> | Google
>     >>
>     >
>     >
>     > _______________________________________________
>     > Rust-vmm mailing list
>     > Rust-vmm at lists.opendev.org <mailto:Rust-vmm at lists.opendev.org>
>     > http://lists.opendev.org/cgi-bin/mailman/listinfo/rust-vmm
> 
> 
> 
> -- 
> Cory Maccarrone | Staff Software Engineer | maccarro at google.com
> <mailto:maccarro at google.com> | Google
> 




More information about the Rust-vmm mailing list