DynamoRIO / DynamoRIO/dynamorio
performance impact of different runtime options
- 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
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