Balancing Performance and Productivity for the Development of Dynamic Binary Instrumentation Tools: A Case Study on Arm Systems
Dynamic Binary Instrumentation (DBI) is a well-established approach for analysing the execution of applications at the level of machine code. DBI frameworks implement a runtime system capable of modifying running applications without access to their source code. These frameworks provide APIs used by DBI tools to plug in their specific analysis and instrumentation routines. However, the dynamic instrumentation needed by these DBI tools is either challenging to implement and / or introduces a significant performance overhead.
An added complexity beyond the well studied scenario of Intel x86, and its 64-bit extension x86-64, is that state-of-the ArM systems (i.e. ARMv8) introduced a distinct 64-bit execution mode with a new redesigned instruction set. Thus, ARMv8 is a computer architecture which contains three instruction sets. This further complicates the development of DBI tools which can work for both 32-bit Arm (AArch32 – includes the A32 and T32 instruction sets), and 64-bit (AArch64 – the A64 instruction set).
This paper presents the design of a novel DBI framework API that provides support both for portable (across the A32, T32 and A64 instruction sets), and for native-code-level analysis and instrumentation, which can be intermixed freely. This API allows DBI tool developers to choose the right balance between performance and productivity at a fine-grained level. The API is implemented on top of the MAMBO DBI system.
Sat 22 FebDisplayed time zone: Pacific Time (US & Canada) change
15:00 - 16:30 | |||
15:00 22mResearch paper | Balancing Performance and Productivity for the Development of Dynamic Binary Instrumentation Tools: A Case Study on Arm Systems Main Conference Cosmin Gorgovan University of Manchester, Guillermo Callaghan University of Manchester, Mikel Luján University of Manchester | ||
15:22 22mResearch paper | Mixed-Data-Model Heterogeneous Compilation and OpenMP Offloading Main Conference Andreas Kurth ETH Zurich, Koen Wolters ETH Zurich, Björn Forsberg ETH Zurich, Alessandro Capotondi University of Modena and Reggio Emilia, Andrea Marongiu University of Modena and Reggio Emilia, Tobias Grosser ETH Zurich, Luca Benini ETH Zurich | ||
15:45 22mResearch paper | Dynamic Property Caches: A Step towards Faster JavaScript Proxy Objects Main Conference | ||
16:07 22mResearch paper | Runtime Multi-Versioning and Specialization inside a Memoized Speculative Loop Optimizer Main Conference Raquel Lazcano Centre of Software Technologies and Multimedia Systems, Universidad Politecnica de Madrid, Daniel Madroñal Centre of Software Technologies and Multimedia Systems, Universidad Politecnica de Madrid, Eduardo Juarez Centre of Software Technologies and Multimedia Systems, Universidad Politecnica de Madrid, Philippe Clauss University of Strasbourg |