summaryrefslogtreecommitdiffstats
path: root/kernel/gsp_emulation.c
diff options
context:
space:
mode:
authorArthur Hanson Rasmusson <arthur@vgpu.io>2026-10-09 15:54:23 -0400
committerArthur Hanson Rasmusson <arthur@vgpu.io>2026-10-09 15:54:23 -0400
commit70198e7f0cde3768e00f7bbabe94fd26a2fcfa54 (patch)
treece96b8f32145117140009977485108f413e02953 /kernel/gsp_emulation.c
parent90ed3273a6b7b0241954fde6b2d34ab3270d9081 (diff)
downloadopen-iov-70198e7f0cde3768e00f7bbabe94fd26a2fcfa54.tar.gz
open-iov-70198e7f0cde3768e00f7bbabe94fd26a2fcfa54.zip
vgsp-sema: resync a CE channel past residual USERD state on counter reset (ISSUE-0002)
r48: the layout USERD of the second session's rank0 was accepted with the previous session's residual PUT=134; the pump consumed 34 stale slots, then the guest's fresh counter reset PUT to 1 and the pump wrapped: last_get never matched the guest's sequence and the live first push was not processed. The client was later seen pushing 216-byte no-release entries with crel frozen. A fresh channel's first push always publishes PUT<=1 and the client waits for its release before a second push, so a PUT>=2 at discovery is residual: seed last_get past it and resync to slot 0 when the guest's own counter reset drops PUT below put_prev. Clear the wait state once entries are consumed without a reset so later genuine wraps keep the normal wrap path.
Diffstat (limited to 'kernel/gsp_emulation.c')
0 files changed, 0 insertions, 0 deletions