D621 - Per-thread call attribution

Status: decided Date: 2026-09-26

Every recorded call carries the host thread that made it, and "what am I inside" is answered by a per-thread current-call slot rather than by the newest call in the shared ring. A fault lists its own thread's recent calls first and then a few from other threads, each labelled as another thread's.

Why: the shared ring answers "what was this process doing", which is the wrong question for a fault or a mapping record once a guest runs more than one thread. A process-wide tail pairs a fault with a wait on a different thread and reads as a cause. Other threads stay visible because a fault while another thread holds something is a real situation.

Rejected: