This is a guest blog post by Jiageng Yu, one of our Google Summer of Code students. This will be the first of a series of posts by our students.
I am Jiageng Yu, a PHD candidate of Institute of Software, Chinese Academy of Sciences, Beijing, China. My research areas are operating systems, virtual machines, and cloud computing. Personally, I am fascinated with science-fiction and magic movies, like G-Force, The Lord of the Rings, Transformers and Inception. Besides, I like visiting the interesting places in Beijing at weekend, therefore, I always find something amazing, including delicious food and magic things.
I have been accepted to GSoC 2011 and will work on the project of Linux based stubdom in next three months. I am greatly honored and excited to join the Xen community. Let me talk a bit about the project I will be working on: Linux based stubdom’s.
Stubdoms are very small Xen PV guests used to run some software components that otherwise live in dom0. I plan to implement a linux based stubdom, which provides devices emulation to a particular HVM guest. The major tasks of the this project are described below.
- Establish the environment of linux based stubdom with minimal linux kernel and shared libraries, which could contain the upstream qemu distribution exactly as it. Maintain a minimal upstream qemu distribution by removing unnecessary objetss in its configuration phase. The minimal linux kernel, shared libraries and the upstream qemu are packed into the ramdisk, which is the real body of stubdom we need.
- Adapt simulation devices of upstream qemu to the relevant frontend devices of stubdom in optimal ways. In this
scenario, consider devices including network, disk and graphics.
- Implement the proper save/restore mechanism for simulation devices. Qemu running in the stubdom writes
a statefile that has to be returned to the toolstack in dom0. Currently minios based stubdoms use two PV consoles to do that, which have not been supported in Linux. Therefore, instead of using additional consoles, create a dynamic virtual disk to transfer save/restore data between Dom0 and stubdom.
- Support pci pass-through devices in the stubdoms, by mapping the memory (including ioport, iomem and irq) of
pass-through devices into the memory of frontend devices. Note that there could be a few differences to the implementation of MiniOS based stubdoms.
- Produce benchmarks to measure the resource usage and performance of linux stubdom in comparison with
MiniOS stubdoms. Measure the throughput of CPU, disk and network, etc.