diff options
| author | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-09-21 19:53:12 -0400 |
|---|---|---|
| committer | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-09-21 19:53:12 -0400 |
| commit | 0630028527ae401e15a99cf1145829e9725a13ad (patch) | |
| tree | c4708d073d0c0cefb15ec5f2976e1a26276f0545 /scripts | |
| parent | 9b44eb71ca2392606b74a15f7f330482be3e826a (diff) | |
| download | open-iov-0630028527ae401e15a99cf1145829e9725a13ad.tar.gz open-iov-0630028527ae401e15a99cf1145829e9725a13ad.zip | |
kernel: msgq writePtr wrap semantics + retry backoff + CE fault buffer size
CRITICAL protocol fix (msgq.c): writePtr/readPtr are slot indices that
WRAP at msgCount ('writePtr += n; if (>= msgCount) -= msgCount'), NOT
monotonic counters. '62 -> 0' is a legitimate wrap, not queue death.
- gsp_rm_poll_commands: consume while (cmd_read != writePtr), advance
cmd_read = (cmd_read + elem_count) % msgcount. Death detection now
only: writePtr >= msgCount (garbage header) / bad element signature /
insane elemCount. Removes false deaths on healthy wraps that killed
the emulator mid-session (fn 10 FREE timeouts).
- gsp_rm_send: published status writePtr now wraps too (driver's
free-space/slot math breaks on unbounded values >= 2*msgCount).
- gsp_rm_emu_poll: back off on_booter_done retries to 250ms (was every
100us poll -> thousands of 'will retry' lines/sec, dmesg unusable);
retry log now pr_warn_ratelimited.
- CE_GET_FAULT_METHOD_BUFFER_SIZE(0x20802a08) = 12288 (GV100 formula
inherited by Turing: 135*(13*5+2) page-aligned, 5 PCEs). Zero reply
failed fault method buffer allocation (NV_ERR_NO_MEMORY) killing
channel-group creation.
Diffstat (limited to 'scripts')
0 files changed, 0 insertions, 0 deletions
