QEMU's emulator allows running operating systems and binaries compiled against one architecture (e.g. Linux ARM) on a host with a different architecture (e.g. Linux x86_64). This process involves a JIT compiler that translates the target CPU instructions to the host's. In this process, some targets outperform others, and some targets have performance bottlenecks in QEMU functions that other targets don't.

In this project, the performance of QEMU's emulation will be deeply analyzed using major profiling tools across all of its targets for both of its user mode (executables) and system mode (operating systems).

  • Custom written benchmark programs will be used to activate the desired QEMU functionalities and locate the target bottlenecks and profile its execution and runtime.
  • Automation tools will be written that detects runtime performance degradation across different versions and targets of QEMU. They will also be used to find how different targets perform compared to each other.
  • Past major releases of QEMU will be examined to identify performance regressions from the past.

All of the findings and conclusions will be regularly presented to the QEMU developers to act upon.

Organization

Student

Ahmed Karaman

Mentors

  • Alexis BennĂ©e
  • Aleksandar Markovic
close

2020