Abstract
Dynamic Binary Translation (DBT) is a powerful approach to support cross-architecture emulation of unmodified binaries. However, DBT systems face correctness and performance challenges, when emulating concurrent binaries from strong to weak memory consistency architectures. As a matter of fact, we report several translation errors in QEMU, when emulating x86 binaries on Arm hosts.
To address these challenges, we propose an end-to-end approach that provides correct and efficient emulation for weak memory model architectures. Our contributions are twofold: First, we formalize QEMU’s intermediate representation’s memory model, and use it to propose formally verified mapping schemes to bridge the strong-on-weak memory consistency mismatch. Second, we implement these verified mappings in Risotto, a QEMU-based DBT system that optimizes memory fence placement while ensuring correctness. Risotto further improves performance via cross-architecture dynamic linking of native shared libraries and faster yet correct translation of compare-and-swap operations.
We evaluate Risotto using multi-threaded benchmark suites and real-world applications, and show that Risotto improves the emulation performance by 6.7% on average over “erroneous” QEMU, while ensuring correctness.
To address these challenges, we propose an end-to-end approach that provides correct and efficient emulation for weak memory model architectures. Our contributions are twofold: First, we formalize QEMU’s intermediate representation’s memory model, and use it to propose formally verified mapping schemes to bridge the strong-on-weak memory consistency mismatch. Second, we implement these verified mappings in Risotto, a QEMU-based DBT system that optimizes memory fence placement while ensuring correctness. Risotto further improves performance via cross-architecture dynamic linking of native shared libraries and faster yet correct translation of compare-and-swap operations.
We evaluate Risotto using multi-threaded benchmark suites and real-world applications, and show that Risotto improves the emulation performance by 6.7% on average over “erroneous” QEMU, while ensuring correctness.
Original language | English |
---|---|
Title of host publication | Proceedings of the 28th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, Volume 1 (ASPLOS 2023) |
Editors | Tor M. Aamodt, Natalie Enright Jerger, Michael Swift |
Place of Publication | New York, NY |
Publisher | ACM |
Pages | 107–122 |
Number of pages | 16 |
Volume | 1 |
ISBN (Electronic) | 9781450399159 |
DOIs | |
Publication status | Published - 21 Dec 2022 |
Event | 28th ACM International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS 2023) - Vancouver, Canada Duration: 25 Mar 2023 → 29 Mar 2023 https://asplos-conference.org/ |
Conference
Conference | 28th ACM International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS 2023) |
---|---|
Abbreviated title | ASPLOS'23 |
Country/Territory | Canada |
City | Vancouver |
Period | 25/03/23 → 29/03/23 |
Internet address |
Keywords
- Binary translation
- Memory models
- Formal verification
Fingerprint
Dive into the research topics of 'Risotto: a dynamic binary translator for weak memory model architectures'. Together they form a unique fingerprint.Datasets
-
Risotto: A Dynamic Binary Translator for Weak Memory Model Architectures
Gouicem, R. (Creator), Sprokholt, D. (Creator), Ruehl, J. (Creator), Rocha, R. C. O. (Creator), Spink, T. (Creator), Chakraborty, S. (Creator) & Bhatotia, P. (Creator), Zenodo, 2022
Dataset