DynamoRIO / DynamoRIO/dynamorio

need to flush icache on code cache memory re-use on ARM

Open
#1,622 0 comments 0 reactions 0 assignees View on GitHub
Bug-AppCrash OpSys-ARM
Dominant language
C
Stars
3.2k
Forks
629
Avg merge
2d 18h
Merged PRs (30d)
30

Description

Today we flush just on hot-patching branches for linking and unlinking.
We also need to flush big regions if we ever re-use them for new fragments.

For cases like cache resets, we'll have to decide whether this is simpler
to do on freeing, or whether we need to maintain a data structure that tracks
whether we've ever had code in each unit.

Contributor guide

Open the contributing guide

Research direction

Locate the ARM code-cache reuse paths and the existing instruction-cache flushes used for hot-patching branches. Compare handling during cache reset and region freeing, then determine how reused regions can be identified and flushed; done means newly allocated fragments never execute stale instructions after reuse.

Written by the indexing model from the issue text.

Assessment

Tech stack
c
Domain
performance
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.