<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css" style="display:none"><!-- p { margin-top: 0px; margin-bottom: 0px; } .EmailQuote { margin-left: 1pt; padding-left: 4pt; border-left: 2px solid rgb(128, 0, 0); }--></style>
</head>
<body dir="ltr" style="font-size:12pt;color:#000000;background-color:#FFFFFF;font-family:Calibri,Arial,Helvetica,sans-serif;">
<p>Hey Stefan,<br>
</p>
<p><br>
</p>
<p>Thanks for taking care of organizing GSoC, and for allowing rust-vmm to also participate under the QEMU umbrella!<br>
</p>
<p>I am a bit unsure of how can we propose projects related to rust-vmm.</p>
<p><span style="font-size: 12pt;">We did a bit of brainstorming in our team, and we came up with 3 proj</span><span style="font-size: 12pt;">ect ideas.</span></p>
<p><span style="font-size: 12pt;"></span><span style="font-size: 12pt;">I</span><span style="font-size: 12pt;">'ll</span><span style="font-size: 12pt;"> just p</span><span style="font-size: 12pt;">aste them below, but please let me know if we were
</span><span style="font-size: 12pt;">supposed to propose them some other way.</span></p>
<p><span style="font-size: 12pt;"><br>
</span></p>
<p><span style="font-size: 12pt;">=== Implement the Virtio Console device in Rust ===<br>
<br>
'''Summary:''' Implement the basic emulation for the Virtio Console device in Rust<br>
<br>
Implement the basic functionality (excluding the optional features:<br>
VIRTIO_CONSOLE_F_SIZE, VIRTIO_CONSOLE_F_MULTIPORT, or VIRTIO_CONSOLE_F_EMERG_WRITE)<br>
of the Virtio Console Device, using the Virtio building blocks (queue implementations,<br>
VirtioDevice traits) defined in rust-vmm/vm-virtio. The virtio console device uses<br>
one virtio queue for transmitting data, and one virtio queue for receiving data.<br>
The implementation can be extended to also support a subset of the previously<br>
mentioned optional features.<br>
<br>
'''Links:'''<br>
* About rust-vmm: https://github.com/rust-vmm/community<br>
* rust-vmm/vm-virtio: https://github.com/rust-vmm/vm-virtio<br>
* virtio-console spec: https://docs.oasis-open.org/virtio/virtio/v1.1/csprd01/virtio-v1.1-csprd01.html#x1-2550003<br>
<br>
'''Details:'''<br>
* Skill level: intermediate<br>
* Language: Rust<br>
* Mentor: iul@amazon.com<br>
* Suggested by: <a href="mailto:fandree@amazon.com">fandree@amazon.com</a><br>
</span></p>
<p><span style="font-size: 12pt;"><br>
</span></p>
<p><span style="font-size: 12pt;">=== Mocking framework for Virtio Queues ===<br>
<br>
'''Summary:''' Implement a mocking framework for virtio queues<br>
<br>
Paravirtualized devices (such as those defined by the Virtio standard) are used<br>
to provide high performance device emulation. Virtio drivers from a guest VM<br>
communicate with the device model using an efficient mechanism based on queues<br>
stored in a shared memory area that operate based on a protocol and message format<br>
defined by the standard. Various implementations of devices and other<br>
virtualization building blocks require mocking the contents that a driver would<br>
place into a Virtio queue for validation, testing, and evaluation purposes.<br>
<br>
This project aims to lay the foundations of a reusable framework for mocking the<br>
driver side of Virtio queue operation, that can be consumed by rust-vmm crates and<br>
other projects. At the basic level, this means providing a flexible and easy to<br>
use interface for users to set up the underlying memory areas and populate contents<br>
(as the driver would do) for the basic split queue format in a generic manner. This<br>
can further be extended for the packed format and with device-specific mocking<br>
capabilities. <br>
<br>
'''Links:''' <br>
* About rust-vmm: https://github.com/rust-vmm/community<br>
* Virtio queue spec: https://docs.oasis-open.org/virtio/virtio/v1.1/csprd01/virtio-v1.1-csprd01.html#x1-230005<br>
Issue in rust-vmm about reusing the mocking logic: rust-vmm/vm-virtio: https://github.com/rust-vmm/vm-virtio
<br>
<br>
'''Details:'''<br>
* Skill level: intermediate<br>
* Language: Rust<br>
* Mentor: aagch@amazon.com<br>
* Suggested by: aagch@amazon.com</span></p>
<p><span style="font-size: 12pt;"><br>
</span></p>
<p><span style="font-size: 12pt;">=== Local running rust-vmm-ci ===<br>
<br>
'''Summary:''' Run the rust-vmm-ci locally<br>
<br>
The rust-vmm-ci provides automation for uniformely running the tests on<br>
all rust-vmm repositories. It is built on top of Buildkite, and only allows<br>
running the tests in the Buildkite context. To run the same tests as in the CI<br>
locally, users need to manually copy the Buildkite pipeline steps.<br>
<br>
The scope of this project is to make it possible for the same tests to easily run<br>
locally. This project makes it easier to contribute to all rust-vmm repositories.<br>
<br>
In order for that to be possible, the following steps are required:<br>
- the Buildlkite pipeline is autogenerated from code instead of being a static<br>
list of tests to run. This also allows us to uniformely use the same container<br>
version for running all the tests (instead of manually modifying each step in<br>
the pipeline)<br>
- the code for autogenerating the Buildkite pipeline is reused for generating<br>
a Python script which can be run locally<br>
<br>
<br>
'''Links:'''<br>
* rust-vmm-ci: https://github.com/rust-vmm/rust-vmm-ci<br>
* Buildkite pipeline that currently runs the tests: https://github.com/rust-vmm/rust-vmm-ci/blob/master/.buildkite/pipeline.yml<br>
* About rust-vmm: https://github.com/rust-vmm/community<br>
* Buildkite documentation: https://buildkite.com/docs/tutorials/getting-started<br>
<br>
'''Details:'''<br>
* Skill level: intermediate<br>
* Language: Python<br>
* Mentor: fandree@amazon.com<br>
* Suggested by: fandree@amazon.com<br>
</span></p>
<p><span style="font-size: 12pt;"><br>
</span></p>
<p><span style="font-size: 12pt;"><br>
​Thanks again!</span></p>
<p><span style="font-size: 12pt;">Andreea</span></p>
<div style="color: rgb(33, 33, 33);">
<div>
<hr tabindex="-1" style="display:inline-block; width:98%">
<div id="x_divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" color="#000000" style="font-size:11pt"><b>From:</b> Stefan Hajnoczi <stefanha@gmail.com><br>
<b>Sent:</b> Monday, January 11, 2021 1:47 PM<br>
<b>To:</b> qemu-devel; kvm; rust-vmm@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é<br>
<b>Subject:</b> [EXTERNAL] [Rust-VMM] Call for Google Summer of Code 2021 project ideas</font>
<div> </div>
</div>
</div>
<font size="2"><span style="font-size:10pt;">
<div class="PlainText">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.<br>
<br>
<br>
<br>
Dear QEMU, KVM, and rust-vmm community,<br>
QEMU will apply for Google Summer of Code<br>
(<a href="https://summerofcode.withgoogle.com/">https://summerofcode.withgoogle.com/</a>) again this year.  This internship<br>
program offers paid, 10-week, remote work internships for<br>
contributing to open source.  QEMU can act as an umbrella organization<br>
for KVM kernel and rust-vmm projects too.<br>
<br>
Please post project ideas on the QEMU wiki before February 14th:<br>
<a href="https://wiki.qemu.org/Google_Summer_of_Code_2021">https://wiki.qemu.org/Google_Summer_of_Code_2021</a><br>
<br>
What's new this year:<br>
 * The number of internship hours has been halved to 175 hours over<br>
   10 weeks. Project ideas must be smaller to fit and students will have<br>
   more flexibility with their working hours.<br>
 * Eligibility has been expanded to include "licensed coding school or<br>
   similar type of program".<br>
<br>
Good project ideas are suitable for 175 hours (10 weeks half-day) work by a<br>
competent programmer who is not yet familiar with the codebase.  In<br>
addition, they are:<br>
 * Well-defined - the scope is clear<br>
 * Self-contained - there are few dependencies<br>
 * Uncontroversial - they are acceptable to the community<br>
 * Incremental - they produce deliverables along the way<br>
<br>
Feel free to post ideas even if you are unable to mentor the project.<br>
It doesn't hurt to share the idea!<br>
<br>
I will review project ideas and keep you up-to-date on QEMU's<br>
acceptance into GSoC.<br>
<br>
For more background on QEMU internships, check out this video:<br>
<a href="https://www.youtube.com/watch?v=xNVCX7YMUL8">https://www.youtube.com/watch?v=xNVCX7YMUL8</a><br>
<br>
Stefan<br>
<br>
_______________________________________________<br>
Rust-vmm mailing list<br>
Rust-vmm@lists.opendev.org<br>
<a href="http://lists.opendev.org/cgi-bin/mailman/listinfo/rust-vmm">http://lists.opendev.org/cgi-bin/mailman/listinfo/rust-vmm</a><br>
</div>
</span></font></div>
<p></p>

<p><br>
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.</p>
</body>
</html>