[Rust-VMM] Call for Google Summer of Code 2021 project ideas

Sergio Lopez slp at redhat.com
Fri Feb 12 13:51:56 UTC 2021


On Fri, Feb 12, 2021 at 01:22:43PM +0000, Florescu, Andreea wrote:
> Hey Stefan,
> 
> 
> Thanks for taking care of organizing GSoC, and for allowing rust-vmm to also participate under the QEMU umbrella!
> 
> I am a bit unsure of how can we propose projects related to rust-vmm.
> 
> We did a bit of brainstorming in our team, and we came up with 3 project ideas.
> 
> I'll just paste them below, but please let me know if we were supposed to propose them some other way.
> 
> 
> === Implement the Virtio Console device in Rust ===
> 
> '''Summary:''' Implement the basic emulation for the Virtio Console device in Rust
> 
> Implement the basic functionality (excluding the optional features:
> VIRTIO_CONSOLE_F_SIZE, VIRTIO_CONSOLE_F_MULTIPORT, or VIRTIO_CONSOLE_F_EMERG_WRITE)
> of the Virtio Console Device, using the Virtio building blocks (queue implementations,
> VirtioDevice traits) defined in rust-vmm/vm-virtio. The virtio console device uses
> one virtio queue for transmitting data, and one virtio queue for receiving data.
> The implementation can be extended to also support a subset of the previously
> mentioned optional features.

FWIW, libkrun already has support for virtio-console with the basic
functionality and VIRTIO_CONSOLE_F_SIZE, and this code could be easily
borrowed for implementing it in some rust-vmm crate:

https://github.com/containers/libkrun/blob/main/src/devices/src/virtio/console

Sergio.

> '''Links:'''
> * About rust-vmm: https://github.com/rust-vmm/community
> * rust-vmm/vm-virtio: https://github.com/rust-vmm/vm-virtio
> * virtio-console spec: https://docs.oasis-open.org/virtio/virtio/v1.1/csprd01/virtio-v1.1-csprd01.html#x1-2550003
> 
> '''Details:'''
> * Skill level: intermediate
> * Language: Rust
> * Mentor: iul at amazon.com
> * Suggested by: fandree at amazon.com<mailto:fandree at amazon.com>
> 
> 
> === Mocking framework for Virtio Queues ===
> 
> '''Summary:''' Implement a mocking framework for virtio queues
> 
> Paravirtualized devices (such as those defined by the Virtio standard) are used
> to provide high performance device emulation. Virtio drivers from a guest VM
> communicate with the device model using an efficient mechanism based on queues
> stored in a shared memory area that operate based on a protocol and message format
> defined by the standard. Various implementations of devices and other
> virtualization building blocks require mocking the contents that a driver would
> place into a Virtio queue for validation, testing, and evaluation purposes.
> 
> This project aims to lay the foundations of a reusable framework for mocking the
> driver side of Virtio queue operation, that can be consumed by rust-vmm crates and
> other projects. At the basic level, this means providing a flexible and easy to
> use interface for users to set up the underlying memory areas and populate contents
> (as the driver would do) for the basic split queue format in a generic manner. This
> can further be extended for the packed format and with device-specific mocking
> capabilities.
> 
> '''Links:'''
> * About rust-vmm: https://github.com/rust-vmm/community
> * Virtio queue spec: https://docs.oasis-open.org/virtio/virtio/v1.1/csprd01/virtio-v1.1-csprd01.html#x1-230005
> Issue in rust-vmm about reusing the mocking logic: rust-vmm/vm-virtio: https://github.com/rust-vmm/vm-virtio
> 
> '''Details:'''
> * Skill level: intermediate
> * Language: Rust
> * Mentor: aagch at amazon.com
> * Suggested by: aagch at amazon.com
> 
> 
> === Local running rust-vmm-ci ===
> 
> '''Summary:''' Run the rust-vmm-ci locally
> 
> The rust-vmm-ci provides automation for uniformely running the tests on
> all rust-vmm repositories. It is built on top of Buildkite, and only allows
> running the tests in the Buildkite context. To run the same tests as in the CI
> locally, users need to manually copy the Buildkite pipeline steps.
> 
> The scope of this project is to make it possible for the same tests to easily run
> locally. This project makes it easier to contribute to all rust-vmm repositories.
> 
> In order for that to be possible, the following steps are required:
> - the Buildlkite pipeline is autogenerated from code instead of being a static
> list of tests to run. This also allows us to uniformely use the same container
> version for running all the tests (instead of manually modifying each step in
> the pipeline)
> - the code for autogenerating the Buildkite pipeline is reused for generating
> a Python script which can be run locally
> 
> 
> '''Links:'''
> * rust-vmm-ci: https://github.com/rust-vmm/rust-vmm-ci
> * Buildkite pipeline that currently runs the tests: https://github.com/rust-vmm/rust-vmm-ci/blob/master/.buildkite/pipeline.yml
> * About rust-vmm: https://github.com/rust-vmm/community
> * Buildkite documentation: https://buildkite.com/docs/tutorials/getting-started
> 
> '''Details:'''
> * Skill level: intermediate
> * Language: Python
> * Mentor: fandree at amazon.com
> * Suggested by: fandree at amazon.com
> 
> 
> ?Thanks again!
> 
> Andreea
> 
> ________________________________
> From: Stefan Hajnoczi <stefanha at gmail.com>
> Sent: Monday, January 11, 2021 1:47 PM
> To: qemu-devel; kvm; rust-vmm at lists.opendev.org; Alex Bennée; Alexander Graf; Alberto Garcia; David Hildenbrand; Eduardo Habkost; Igor Mammedov; John Snow; Julia Suvorova; Gerd Hoffmann; Kevin Wolf; Laurent Vivier; Marc-André Lureau; Aleksandar Markovic; Sergio Lopez; Stefano Garzarella; Paolo Bonzini; Philippe Mathieu-Daudé
> Subject: [EXTERNAL] [Rust-VMM] Call for Google Summer of Code 2021 project ideas
> 
> CAUTION: This email originated from outside of the organization. Do not click links or open attachments unless you can confirm the sender and know the content is safe.
> 
> 
> 
> Dear QEMU, KVM, and rust-vmm community,
> QEMU will apply for Google Summer of Code
> (https://summerofcode.withgoogle.com/) again this year.  This internship
> program offers paid, 10-week, remote work internships for
> contributing to open source.  QEMU can act as an umbrella organization
> for KVM kernel and rust-vmm projects too.
> 
> Please post project ideas on the QEMU wiki before February 14th:
> https://wiki.qemu.org/Google_Summer_of_Code_2021
> 
> What's new this year:
>  * The number of internship hours has been halved to 175 hours over
>    10 weeks. Project ideas must be smaller to fit and students will have
>    more flexibility with their working hours.
>  * Eligibility has been expanded to include "licensed coding school or
>    similar type of program".
> 
> Good project ideas are suitable for 175 hours (10 weeks half-day) work by a
> competent programmer who is not yet familiar with the codebase.  In
> addition, they are:
>  * Well-defined - the scope is clear
>  * Self-contained - there are few dependencies
>  * Uncontroversial - they are acceptable to the community
>  * Incremental - they produce deliverables along the way
> 
> Feel free to post ideas even if you are unable to mentor the project.
> It doesn't hurt to share the idea!
> 
> I will review project ideas and keep you up-to-date on QEMU's
> acceptance into GSoC.
> 
> For more background on QEMU internships, check out this video:
> https://www.youtube.com/watch?v=xNVCX7YMUL8
> 
> Stefan
> 
> _______________________________________________
> Rust-vmm mailing list
> Rust-vmm at lists.opendev.org
> http://lists.opendev.org/cgi-bin/mailman/listinfo/rust-vmm
> 
> 
> 
> 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 --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://lists.opendev.org/pipermail/rust-vmm/attachments/20210212/f03fb3c6/attachment-0001.sig>


More information about the Rust-vmm mailing list