Internships/ProjectIdeas/PatchewRestAPI
Patchew REST API improvements
Summary: Improve the REST API to retrieve patch metadata, testing results, etc. from patchew.org
Patchew is an open source CI project to automate testing of patches submitted as emails on mailing lists. Currently Patchew has a simple API, but it is complicated to use it because it is not REST-like and it exposes low-level details of the patchew database schema. The project aims at replacing it with a new REST API. A first implementation of the API is available in a pull request; other improvements on top include implementing missing features of the old API (importing from mailing lists, tracking git repositories), OAuth authentication, and a webhooks plugin.
Details:
- Skill level: beginner/intermediate
- Language: Python
- Mentor: Paolo Bonzini <pbonzini@redhat.com>, Fam Zheng <famz@redhat.com>
- Suggested by: Paolo Bonzini
QEMU NVMe Performance Optimization
Summary: QEMU's NVMe implementation uses traditional trap-and-emulation method to emulate I/Os, thus the performance suffers due to frequent VM-exits. NVMe Specification 1.3 defines a new feature to update doorbell registers using a Shadow Doorbell Buffer. This can be utilized to enhance performance of emulated controllers like QEMU NVMe. The goal of this summer of code is to add such support in QEMU and apply polling techniques to achieve comparable performance as virtio-blk dataplane. Specifically, this project includes the following parts: (1) add shadow doorbell buffer and ioeventfd support into QEMU NVMe emulation, which will reduce the number of VM-exits and make them less expensive (reducing VCPU latency); (2) add iothread support to QEMU NVMe emulation to reduce or eliminate VM-exits; (3) add a RAM disk back-end for debugging; (4) implement an interrupt coalescing scheme for efficient host-to-guest communication (at least one of (3) and (4)). Links:
- https://nvmexpress.org/wp-content/uploads/NVM_Express_Revision_1.3.pdf
- http://ucare.cs.uchicago.edu/pdf/fast18-femu.pdf
- https://github.com/ucare-uchicago/femu
- https://vmsplice.net/~stefan/stefanha-kvm-forum-2017.pdf
Details:
- Skill level: intermediate-advanced
- Language: C
- Mentor: Paolo Bonzini <pbonzini@redhat.com>, bonzini on IRC
- Suggested by: Huaicheng Li <huaicheng@cs.uchicago.edu>, Paolo Bonzini