DynamoRIO / DynamoRIO/dynamorio

Kernel module: support CPU-shared fragments

Open
#8,116 1 comment 0 reactions 0 assignees View on GitHub
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

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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.