Evaluating Fragment Construction Policies for SDT Systems
VIRGINIA UNIV CHARLOTTESVILLE DEPT OF COMPUTER SCIENCE
Pagination or Media Count:
Software Dynamic Translation SDT systems have been used for program instrumentation, dynamic optimization, security policy enforcement, intrusion detection, and many other uses. To be widely applicable, the overhead runtime, memory usage, and power consumption should be as low as possible. For instance, if an SDT system is protecting a web server against possible attacks, but causes 30 slowdown, a company may need 30 more machines to handle the web traffic they expect. Consequently, the causes of SDT overhead should be studied rigorously. This work evaluates many alternative policies for the creation of fragments within the Strata SDT framework. In particular, we examine the effects of ending translation at conditional branches ending translation at unconditional branches whether to use partial inlining for call instructions whether to build the target of calls immediately or lazily whether to align branch targets and how to place code to transition back to the dynamic translator. We find that effective translation strategies are vital to program performance, improving performance from as much as 28 overhead, to as little as 3 overhead on average for the SPEC CPU2000 benchmark suite. We further demonstrate that these translation strategies are effective across several platforms, including Sun SPARC UltraSparc IIi, AMD Athlon Opteron, and Intel Pentium IV processors.
- Computer Systems Management and Standards
- Economics and Cost Analysis