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 | a4143aeb800df36aa9919ecf7c6a1e926f55003d (patch) | |
| tree | 2e3c18bb1dd162a759a16e25648de7cbe756d704 /tools/cuda-ab/p2/src/p2_mixed.cu | |
| parent | e2d2ee5bb35deca13f9fc24b04d35af3f4d898ce (diff) | |
| download | open-iov-a4143aeb800df36aa9919ecf7c6a1e926f55003d.tar.gz open-iov-a4143aeb800df36aa9919ecf7c6a1e926f55003d.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 'tools/cuda-ab/p2/src/p2_mixed.cu')
0 files changed, 0 insertions, 0 deletions
