summaryrefslogtreecommitdiffstats
path: root/kernel/gsp_emulation.h
diff options
context:
space:
mode:
authorArthur Hanson Rasmusson <arthur@vgpu.io>2026-10-09 15:45:21 -0400
committerArthur Hanson Rasmusson <arthur@vgpu.io>2026-10-09 15:45:21 -0400
commit0f3258e8b72e51ea5d2f171590938628160a84b6 (patch)
tree81402380ae3325e7302fafa6947e21f69a212dcc /kernel/gsp_emulation.h
parent523c0839a21a798ca7f92395cde71198d0cf030c (diff)
downloadopen-iov-0f3258e8b72e51ea5d2f171590938628160a84b6.tar.gz
open-iov-0f3258e8b72e51ea5d2f171590938628160a84b6.zip
vgsp-sema: CE layout USERD accepts on PUT alone; GET is GPU-owned (ISSUE-0002)
r47 guest truth (channel_info walk in the hung second client): every CE channel's GP_PUT/GP_GET GPU VAs are ring+0x2008c / ring+0x20088 and the live rank0 USERD is the layout block at fb 0x90000 (the emulation's offsets were right all along). The coherence gate required g <= p, but the GET word is GPU-owned and holds leftovers (session 2 rank0: PUT=1, GET=136 from the previous session) - so the live block was rejected forever (r44 strict never accepted; r42/r46 latched the stale registered candidate). Accept the CE layout block when the PUT word is plausible; the pump tracks ch->last_get and rewrites GP_GET as it consumes entries.
Diffstat (limited to 'kernel/gsp_emulation.h')
0 files changed, 0 insertions, 0 deletions