DynamoRIO / DynamoRIO/dynamorio

performance impact of different runtime options

Open
#769 3 comments 0 reactions 0 assignees View on GitHub
Migrated Performance Priority-Medium Type-Feature
Dominant language
C
Stars
3.2k
Forks
629
Avg merge
2d 18h
Merged PRs (30d)
30

Description

_From [zhao...@google.com](https://code.google.com/u/106321947286816917100/) on May 04, 2012 16:55:45_

We tuned some runtime options when a client present to simplify the client instrumentation. We know there would be performance impact, but some is really surprising.

447.dealII from spec2006 with test input:

|--------+--------+-------------------------------------------------------------------------------------------------------------------------------|
| run | time | options |
|--------+--------+-------------------------------------------------------------------------------------------------------------------------------|
| Native | 16.831 | |
| Pin | 29.133 | |
| DR | 26.409 | |
| DR | 26.399 | -code_api -stack_size 56K -max_elide_jmp 16 -max_elide_call 16 -inline_ignored_syscalls -native_exec -indcall2direct |
| DR | 31.473 | -code_api -stack_size 56K -max_elide_jmp 0 -max_elide_call 16 -inline_ignored_syscalls -native_exec -indcall2direct |
| DR | 26.522 | -code_api -stack_size 56K -max_elide_jmp 16 -max_elide_call 0 -inline_ignored_syscalls -native_exec -indcall2direct |
| DR | 26.376 | -code_api -stack_size 56K -max_elide_jmp 16 -max_elide_call 16 -no_inline_ignored_syscalls -native_exec -indcall2direct |
| DR | 26.417 | -code_api -stack_size 56K -max_elide_jmp 16 -max_elide_call 16 -inline_ignored_syscalls -no_native_exec -indcall2direct |
| DR | 26.378 | -code_api -stack_size 56K -max_elide_jmp 16 -max_elide_call 16 -inline_ignored_syscalls -native_exec -no_indcall2direct |
|--------+--------+-------------------------------------------------------------------------------------------------------------------------------|
| DR | 31.473 | -code_api -stack_size 56K -max_elide_jmp 0 -max_elide_call 16 -inline_ignored_syscalls -native_exec -indcall2direct |
| DR | 26.447 | -code_api -stack_size 56K -max_elide_jmp 1 -max_elide_call 16 -inline_ignored_syscalls -native_exec -indcall2direct |
| DR | 26.392 | -code_api -stack_size 56K -max_elide_jmp 2 -max_elide_call 16 -inline_ignored_syscalls -native_exec -indcall2direct |
|--------+--------+-------------------------------------------------------------------------------------------------------------------------------|

How can we minimize the gap?

_Original issue: http://code.google.com/p/dynamorio/issues/detail?id=769_

Contributor guide

Open the contributing guide

Research direction

Start by reproducing the 447.dealII SPEC2006 test with the Native, Pin, and DynamoRIO configurations listed in the issue. Compare the runtime-option variants and profile the source areas involved in instrumentation and execution; done means explaining the surprising gap and identifying a validated way to reduce it.

Written by the indexing model from the issue text.

Assessment

Tech stack
c
Domain
devtools, performance
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.