Title: Dimension: An Instrumentation Tool for Virtual Execution Environments
1Dimension An Instrumentation Tool for Virtual
Execution Environments
Jing Yang, Shukang Zhou and Mary Lou Soffa
Department of Computer Science, University of
Virginia jy8y, zhou, soffa_at_cs.virginia.edu
- Goals
- A stand alone instrumentation tool for a variety
of translation-based virtual execution
environments (VEE), which owns - Flexibility the effort to use it with diverse
VEEs is minimal - Comprehensiveness can instrument both the
source binary and the target binary of a VEE - Easy-of-Use easy user model to write
instrumentation specification - Efficiency reasonable instrumentation overhead
- Challenges
- The VEE should be barely touched, since a deep
inspection and modification of all its components
is no easier than building them from scratch,
however, - Without in-depth extensions to the VEE, the
built-on instrumentation can hardly be
comprehensive, easy-to-use, and efficient - Design Decisions
- A separate tool which provides instrumentation
services to VEEs through specific interfaces - Use probe-based instrumentation technique to
avoid interfering a VEEs code generation and
code cache management - Instrument source instructions via instrumenting
its corresponding target instructions - Two requirements to the instrumentation unit
single-entry and large enough to hold a jump
instruction - Organization of Dimension
- The whole tool is VEE independent
(a)
(b)
(c) Slowdown from
instrumentation of Dimension. (a) is the for
target binary of Strata, (b) is for target
binary of Jikes RVM and (c) is for source binary
of Jikes RVM. NO_OPT stands for no
optimization INL stands for inlining PCS
stands for partial context switch and PC
stands for probe coalescing.
(d)
(e) (d)
Is comparison of slowdown from instrumentation
between Jazz and Dimension. (e) is comparison of
slowdown from instrumentation in traditional
execution environments.
- Status
- Under active development
- First paper will appear in Proceedings of the
second ACM/USENIX International Conference on
Virtual Execution Environments, Ottawa, June
2006. - Future Work
- Handle the source-to-target instruction mapping
in case of optimization (e.g., code motion) - Automatic generation of binary manipulation
library for new architectures - Catch the runtime context of source binary and
represent it as that of the corresponding target
binary - Further reduce the efforts to modify VEEs to
integrate Dimension in - Retarget Dimension to more VEEs on Different
architectures and operating systems