DynamoRIO / DynamoRIO/dynamorio

[x64][correctness][performance] for x86 code use separate x86 ibl tables and compacted or separate tls

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

Description

_From [bruen...@google.com](https://code.google.com/u/109494838902877177630/) on June 21, 2012 15:26:55_

this was PR 283895

split from issue #49 for x86 ibl: simplest to have single 64-bit hashtable and have 32-bit
routine that reads it (and assume no 32-to-64 non-far accidental
transitions). that's what I'm implementing for now.

long-term we want good performance and correctness (so that x64 DR for a
WOW64 process has no disadvantages vs x86 DR), so we need to split the ibl
hashtables into 2. for simultaneous x86 and x64 htables there are 2
options:

1) have separate local_state_t struct and offsets and fs: tls
2) use x64 tls, and require a code cache exit on every mode change so we
can swap the ibl tls fields

1 has more compact tls while 2 has worse perf from wider tls and won't
match 32-bit DR perf. but 1 is more complex: yet more data structs and
routines that need runtime dispatch. from PR 253431, for 2 we could also
have ibl use half of each slot, and fcache_return moves out to separate
64-bit slots: that's simpler than setting up fs.

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

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.