Hi Stefan, On Fri, Jan 27, 2023 at 10:17:40AM -0500, Stefan Hajnoczi wrote:
Dear QEMU, KVM, and rust-vmm communities, QEMU will apply for Google Summer of Code 2023 (https://summerofcode.withgoogle.com/) and has been accepted into Outreachy May 2023 (https://www.outreachy.org/). You can now submit internship project ideas for QEMU, KVM, and rust-vmm! Please reply to this email by February 6th with your project ideas.
sorry for being late, if there is still time I would like to propose the following project.
Please, let me know if I should add it to the wiki page. Any feedback or co-mentors are welcome :-) Thanks, Stefano === Sibling VM communication in vhost-user-vsock === '''Summary:''' Extend the existing vhost-user-vsock Rust application to support sibling VM communication During GSoC 2021, we developed vhost-user-vsock application in Rust. It leveraged the vhost-user protocol to emulate a virtio-vsock device in an external process. It provides the hybrid VSOCK interface over AF_UNIX introduced by Firecracker. The current implementation supports a single virtual machine (VM) per process instance. The idea of this project is to extend the vhost-user-vsock crate available in the rust-vmm/vhost-device workspace to support multiple VMs per instance and allow communication between sibling VMs. This project will allow you to learn more about the virtio-vsock specification, rust-vmm crates, and vhost-user protocol to interface with QEMU. This work will be done in Rust, but we may need to patch the virtio-vsock driver or vsock core in Linux if we will find some issues. AF_VSOCK in Linux already supports the VMADDR_FLAG_TO_HOST flag to be used in the struct sockaddr_vm to communicate with sibling VMs. Goals: * Understand how a virtio-vsock device works * Refactor vhost-user-vsock code to allow multiple virtio-vsock device instances * Extend the vhost-user-vsock CLI * Implement sibling VM communication * (optional) Support adding new VMs at runtime '''Links:''' * [https://gitlab.com/vsock/vsock vsock info and issues] * [https://wiki.qemu.org/Features/VirtioVsock virtio-vsock QEMU wiki page] * [https://github.com/rust-vmm/vhost-device/tree/main/crates/vsock vhost-user-vsock application] * [https://summerofcode.withgoogle.com/archive/2021/projects/6126117680840704 vhost-user-vsock project @ GSoC 2021] * [https://github.com/firecracker-microvm/firecracker/blob/master/docs/vsock.md Firecracker's hybrid VSOCK] * [https://gitlab.com/qemu-project/qemu/-/blob/master/docs/interop/vhost-user.rst vhost-user protocol] * [https://lore.kernel.org/lkml/20201214161122.37717-1-andraprs@xxxxxxxxxx/ VMADDR_FLAG_TO_HOST flag support in Linux] '''Details:''' * Project size: 350 hours * Skill level: intermediate (knowledge of Rust and virtualization) * Language: Rust * Mentor: Stefano Garzarella <sgarzare@xxxxxxxxxx> ** IRC: sgarzare / Matrix: @sgarzare:matrix.org * Suggested by: Stefano Garzarella <sgarzare@xxxxxxxxxx>