DynamoRIO / DynamoRIO/dynamorio
Instruction cache coherence transparency
- Dominant language
- C
- Stars
- 3.2k
- Forks
- 630
- Avg merge
- 2d 13h
- Merged PRs (30d)
- 31
Description
If an application on an explicitly-coherent-vs-data-cache architecture like AArch64 dynamically generates code into memory and fails to flush the icache, it will cause potential problems of stale values when that code is executed. However, under DR, there will never be a problem since DR will read the app's code as data and execute copies in its code caches which are correctly synchronized. This is a transparency violation as DR does not reproduce the app's original behavior.
This is likely not high priority and unless there is a simple solution we will probably just live with it. Xref related issues like NX transparency (#329) though that is easily solvable.
Contributor guide
Research direction
No source file, test, or entry point is named. Start by reading this issue and the linked NX transparency issue (#329), then investigate DynamoRIO's handling of dynamically generated code on explicitly coherent AArch64 systems. Done means establishing whether DR can preserve the application's stale-icache behavior or documenting why it cannot.
Written by the indexing model from the issue text.
Assessment
- Domain
- devtools, operating-systems
- Issue type
- Bug
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100