Optimization of naïve dynamic binary instrumentation Tools/

Thesis (M. Eng.)--Massachusetts Institute of Technology, Dept. of Electrical Engineering and Computer Science, 2011.

Bibliographic Details
Main Author: Kleckner, Reid (Reid N.)
Other Authors: Saman Amarasinghe.
Format: Thesis
Language:eng
Published: Massachusetts Institute of Technology 2013
Subjects:
Online Access:http://hdl.handle.net/1721.1/76984
_version_ 1811070116091133952
author Kleckner, Reid (Reid N.)
author2 Saman Amarasinghe.
author_facet Saman Amarasinghe.
Kleckner, Reid (Reid N.)
author_sort Kleckner, Reid (Reid N.)
collection MIT
description Thesis (M. Eng.)--Massachusetts Institute of Technology, Dept. of Electrical Engineering and Computer Science, 2011.
first_indexed 2024-09-23T08:25:26Z
format Thesis
id mit-1721.1/76984
institution Massachusetts Institute of Technology
language eng
last_indexed 2024-09-23T08:25:26Z
publishDate 2013
publisher Massachusetts Institute of Technology
record_format dspace
spelling mit-1721.1/769842022-01-13T07:54:29Z Optimization of naïve dynamic binary instrumentation Tools/ Helping programmers write fast instrumentation tools with DynamoRIO Kleckner, Reid (Reid N.) Saman Amarasinghe. Massachusetts Institute of Technology. Dept. of Electrical Engineering and Computer Science. Massachusetts Institute of Technology. Department of Electrical Engineering and Computer Science Electrical Engineering and Computer Science. Thesis (M. Eng.)--Massachusetts Institute of Technology, Dept. of Electrical Engineering and Computer Science, 2011. Cataloged from PDF version of thesis. Includes bibliographical references (p. 59-60). The proliferation of dynamic program analysis tools has done much to ease the burden of developing complex software. However, creating such tools remains a challenge. Dynamic binary instrumentation frameworks such as DyanamoRIO and Pin provide support for such tools by taking responsibility for application transparency and machine code manipulation. However, tool writers must still make a tough choice when writing instrumentation: should they inject custom inline assembly into the application code, or should they use the framework facilities for inserting callbacks into regular C code? Custom assembly can be more performant and more flexible, but it forces the tool to take some responsibility for maintaining application transparency. Callbacks into C, or "clean calls," allow the tool writer to ignore the details of maintaining transparency. Generally speaking, a clean call entails switching to a safe stack, saving all registers, materializing the arguments, and jumping to the callback. This thesis presents a suite of optimizations for DynamoRIO that improves the performance of "naive tools," or tools which rely primarily on clean calls for instrumentation. Most importantly, we present a novel partial inlining optimization for instrumentation routines with conditional analysis. For simpler instrumentation routines, we present a novel call coalescing optimization that batches calls into fewer context switches. In addition to these two novel techniques, we provide a suite of machine code optimizations designed to leverage the opportunities created by the aforementioned techniques. With this additional functionality built on DynamoRIO, we have shown improvements of up to 54.8x for a naive instruction counting tool as well as a 3.7x performance improvement for a memory alignment checking tool on average for many of the benchmarks from the SPEC 2006 CPU benchmark suite. by Reid Kleckner. M.Eng. 2013-02-14T15:35:13Z 2013-02-14T15:35:13Z 2011 2011 Thesis http://hdl.handle.net/1721.1/76984 825550796 eng M.I.T. theses are protected by copyright. They may be viewed from this source for any purpose, but reproduction or distribution in any format is prohibited without written permission. See provided URL for inquiries about permission. http://dspace.mit.edu/handle/1721.1/7582 60 p. application/pdf Massachusetts Institute of Technology
spellingShingle Electrical Engineering and Computer Science.
Kleckner, Reid (Reid N.)
Optimization of naïve dynamic binary instrumentation Tools/
title Optimization of naïve dynamic binary instrumentation Tools/
title_full Optimization of naïve dynamic binary instrumentation Tools/
title_fullStr Optimization of naïve dynamic binary instrumentation Tools/
title_full_unstemmed Optimization of naïve dynamic binary instrumentation Tools/
title_short Optimization of naïve dynamic binary instrumentation Tools/
title_sort optimization of naive dynamic binary instrumentation tools
topic Electrical Engineering and Computer Science.
url http://hdl.handle.net/1721.1/76984
work_keys_str_mv AT klecknerreidreidn optimizationofnaivedynamicbinaryinstrumentationtools
AT klecknerreidreidn helpingprogrammerswritefastinstrumentationtoolswithdynamorio