Section: New Software and Platforms
QEMU plugins
We have collaborated with STMicroelectronics on extending the QEMU CPU emulator with a plugin system. These plugins allow users to observe and modify the machine code emitted by QEMUs binary translator.
We have leveraged this to start development on a number of tools for profiling and performance debugging.
-
cachesim: A QEMU plugin that feeds memory accesses observed during program execution into the DineroIV cache simulator. This allows estimating the number of a cache misses caused by each instruction of a program. Using this information we can also estimate the amount of memory bandwidth required by a program. This in turn can be used to diagnose if the applications performance is constrained by memory or CPU resources.
-
dep-rate: A QEMU plugin that uses a shadow memory to detects data dependencies between instructions and correlates them with cache misses reported by DineroIV to estimate the performance impact of these dependencies.
-
cpath: A QEMU plugin that estimates the optimal execution time of a program on an infinitely parallel CPU and compares it to that for a more realistic model of a CPU. This comparison is used to judge the amount of instruction level parallelism existing in a program.