diff options
| author | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-11-08 06:39:50 -0500 |
|---|---|---|
| committer | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-11-08 06:39:50 -0500 |
| commit | cfa2bf216065c87a185e83a8bf38a6c5dd5788c8 (patch) | |
| tree | 58495ecf023b18f990cb503bb5fb160b622bb438 /kernel/dynamic_rpc_dispatcher.c | |
| parent | 0bfd7a693a9b59def9e1494d34b61794ae04930d (diff) | |
| download | open-iov-cfa2bf216065c87a185e83a8bf38a6c5dd5788c8.tar.gz open-iov-cfa2bf216065c87a185e83a8bf38a6c5dd5788c8.zip | |
vgsp-disp: never publish GET past PUT; bounded no-parse push dump
r1630: the window channel's first push read returned unparseable bytes
(0 methods) and the parser walked off the 4 KB ring, publishing
GET=0x1000 while PUT stayed 0x4e4. nvidia-modeset then wedged in
'Error while waiting for GPU progress', Xorg never started and glxinfo/
GZDoom never reached the GL path.
Only consume a segment that parses exactly to the driver's PUT. On a
short/invalid read, leave consumed unchanged: the pump retries next
pass (which also covers a ring the guest kicked before its content is
visible) and GET can never move past PUT. Dump the head of an
unparseable segment (bounded, disp_dbg) to name what the ring holds.
Reset dump budgets per mdev cleanup so each boot keeps its diagnostics.
Diffstat (limited to 'kernel/dynamic_rpc_dispatcher.c')
0 files changed, 0 insertions, 0 deletions
