qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Call for GSoC and Outreachy project ideas for summer 2023


From: Stefano Garzarella
Subject: Re: Call for GSoC and Outreachy project ideas for summer 2023
Date: Fri, 17 Feb 2023 17:23:34 +0100

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@amazon.com/ 
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@redhat.com>
** IRC: sgarzare / Matrix: @sgarzare:matrix.org
* Suggested by: Stefano Garzarella <sgarzare@redhat.com>




reply via email to

[Prev in Thread] Current Thread [Next in Thread]