DynamoRIO / DynamoRIO/dynamorio
Kernel module: support CPU-shared fragments
- Dominant language
- C
- Stars
- 3.2k
- Forks
- 629
- Avg merge
- 2d 15h
- Merged PRs (30d)
- 31
Description
In #8096 we added options parsing for the kernel module. Currently, the `os_check_option_compatibility()` function in `core/kernel_linux/os.c` forces `shared_bbs`, `shared_traces`, `coarse_units` off, restricting the kernel module to CPU-private fragments. This was inherited from drk, where it was a known limitation rather than a desired design. The kernel interrupt path simply couldn't handle shared-fragment unlinking or state reconstruction races.
Supporting CPU-shared fragments requires revisiting interrupt patching, unlink/relink coordination across CPUs, and TLS bootstrapping at kernel entry points.
Contributor guide
Research direction
Start in core/kernel_linux/os.c at os_check_option_compatibility(), where shared_bbs, shared_traces, and coarse_units are forced off. Read the kernel interrupt path and investigate interrupt patching, cross-CPU unlink/relink coordination, and TLS bootstrapping at kernel entry points. Done means CPU-shared fragments are supported without state reconstruction races or compatibility checks disabling them.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c, linux
- Domain
- operating-systems
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100