summaryrefslogtreecommitdiffstats
path: root/tools/vk/vk_probe2.py
diff options
context:
space:
mode:
authorArthur Hanson Rasmusson <arthur@vgpu.io>2026-10-26 15:43:01 -0400
committerArthur Hanson Rasmusson <arthur@vgpu.io>2026-10-26 15:43:01 -0400
commitc3cdcf4b1f2279512f1ef37888fe8c76160295e5 (patch)
treeb066d9d1bb9e63d2028a2150ae436983822e497f /tools/vk/vk_probe2.py
parent87adc72977bf1e882b36a0597431f7e113559908 (diff)
downloadopen-iov-c3cdcf4b1f2279512f1ef37888fe8c76160295e5.tar.gz
open-iov-c3cdcf4b1f2279512f1ef37888fe8c76160295e5.zip
vgsp-sema: SESSION 135 CE first-submission capture: reject a consumed-state USERD candidate (get >= put > 0)
At the first-submission instant the channel's own submission is by definition unconsumed - the notifier clear this capture runs before is what would let the driver treat it as consumed. A candidate whose USERD reads a consumed state (put == get > 0) cannot be this channel's live just-submitted work. Observed r785 (CUDA-first boot, three Vulkan runs): the capture latched fb 0x80000 / userd 0x90000 for beef0101 (rank 0) with put=1 get=1 - the dead CUDA client's caf00012 block surviving in VRAM after its session ended. The decoded entry (va=0x120000000 len=40) was the old session's, the expectations seeded from the stale pool word (want=2/3 vs pay=1) and the Vulkan client stalled into its fence timeout on every run. All genuine first-submission latches on record read put=1 get=0 at the capture instant (r779 caf00012 rank0, r785 caf00012 rank0, r781/run1 beef0101). Idle 0/0 stays acceptable per svc_userd_probe's own rule. Session-scoped rank ownership (svc_ce_firstsub_off) does not cover this class: the stale block belongs to a previous CLIENT, and its consumed state is the only local signal that it is not this submission.
Diffstat (limited to 'tools/vk/vk_probe2.py')
0 files changed, 0 insertions, 0 deletions