summaryrefslogtreecommitdiffstats
path: root/kernel/version
diff options
context:
space:
mode:
authorArthur Hanson Rasmusson <arthur@vgpu.io>2026-10-09 22:11:03 -0400
committerArthur Hanson Rasmusson <arthur@vgpu.io>2026-10-09 22:11:03 -0400
commitad9327b4b5dd1cb943a6ddaa473d765f3c18f89a (patch)
tree262d1c1d377749d129c82ab946aa3869b47350dd /kernel/version
parent94058a3821236499b39cff80ca33f4d91c1688d6 (diff)
downloadopen-iov-ad9327b4b5dd1cb943a6ddaa473d765f3c18f89a.tar.gz
open-iov-ad9327b4b5dd1cb943a6ddaa473d765f3c18f89a.zip
vgsp-sema: rewind last_get on a fresh channel's second put drop (ISSUE-0002)
r73 c3 rank2: discovery read the previous session's residual put (67); the pump consumed the live entries 0..1, the r48 resync handled the first drop, but the guest's counter then settled at put=1 while last_get=2 and userd_wait_fresh was already consumed. The loop condition last_get != put then marched ~1023 slots the producer had not written, holding each stale entry for the full CE grace (one fake release per 8 s) - the client looked wedged and the exec timed out. When a drop leaves the pump ahead of the producer on a channel with fewer than half a ring of submissions, rewind last_get to put instead of marching. A genuine ring wrap needs a full ring of submissions, so this cannot skip a live entry.
Diffstat (limited to 'kernel/version')
0 files changed, 0 insertions, 0 deletions