DynamoRIO / DynamoRIO/dynamorio

Instruction cache coherence transparency

Open
#5,038 0 comments 0 reactions 0 assignees View on GitHub
Bug-AppFail Priority-Low
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.