Emulation of other or newer processor architectures is necessary for a wide variety of use cases, from ensuring compatibility to offering a vehicle for computer architecture research. This problem is usually approached using dynamic binary translation, where machine code is translated, on the fly, to the host architecture during program execution. Existing systems, like QEMU, usually focus on translation performance rather than the overall program execution, and extensions, like HQEMU, are limited by their underlying implementation. Conversely, performance-focused systems are typically used for binary instrumentation. E.g., DynamoRIO reuses original instructions where possible, while Instrew utilizes the LLVM compiler infrastructure, but only supports same-architecture code generation. In this short paper, we generalize Instrew to support different guest and host architectures by refactoring the lifter and by implementing target-independent optimizations to re-use host hardware features for emulated code. We demonstrate this flexibility by adding support for RISC-V as guest architecture and AArch64 as host architecture. Our performance results on SPEC CPU2017 show significant improvements compared to QEMU, HQEMU as well as the original Instrew.
Fri 16 AprDisplayed time zone: Pacific Time (US & Canada) change
08:30 - 10:00
|virtio-mem: Paravirtualized Memory Hot(Un)Plug|
|Efficient LLVM-Based Dynamic Binary Translation|
Alexis Engelke Technical University of Munich, Dominik Okwieka , Martin Schulz Technical University of MunichDOI
|(No)Compromis: Paging Virtualization Is Not a Fatality|
Boris Teabe , Peterson Yuhala , Alain Tchana Toulouse University, France, Fabian Hermenier , Daniel Hagimont Toulouse University, France, Gilles Muller InriaDOI