diff options
| author | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-10-08 00:46:38 -0400 |
|---|---|---|
| committer | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-10-08 00:46:38 -0400 |
| commit | 1d51c63d76c960ae3a13fd8a14d172674114d6f0 (patch) | |
| tree | 76bff4c783701f85a65c44b535213741aab50e35 /STATE-CURRENT.md | |
| parent | bf8915caeb4c983dbfb3b9bbd1bb3836bdc4761f (diff) | |
| download | open-iov-1d51c63d76c960ae3a13fd8a14d172674114d6f0.tar.gz open-iov-1d51c63d76c960ae3a13fd8a14d172674114d6f0.zip | |
tools: stream UVM trace via trace_pipe in the guest pin scanner (kill the second-client stall race)
The guest scanner's TraceReader tailed the last 256 KB of the trace ring
every 0.3 s. A one-shot uvmt sem= event could age out of that window
before the next poll (the client's spin floods the ring), so a second
client in the same VM was never discovered: semfix re-pinned the previous
client's freed sem while the new client's push page stayed untranslated
(host nomap, drain held, guest spins forever).
- guest_pin_stream.py: consume /sys/kernel/tracing/trace_pipe instead
(each event delivered exactly once; no ring-window race), with
reconnect on read error. The old ring-tail read is kept only as
semfix's fallback.
- clear the trace ring on every client switch so the fallback cannot
re-learn the previous client's stale events.
Diffstat (limited to 'STATE-CURRENT.md')
0 files changed, 0 insertions, 0 deletions
