diff options
| author | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-10-09 21:16:49 -0400 |
|---|---|---|
| committer | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-10-09 21:16:49 -0400 |
| commit | b021abb242664d0c4cb2492c5d73aa7bdcdee4c4 (patch) | |
| tree | b9c4d2922a351c07266f4ae36407af5f7abcdf92 /kernel/gsp_phys_registry_img.h | |
| parent | 22238ebd3cfc6e568049cdd73773fb842ea41565 (diff) | |
| download | open-iov-b021abb242664d0c4cb2492c5d73aa7bdcdee4c4.tar.gz open-iov-b021abb242664d0c4cb2492c5d73aa7bdcdee4c4.zip | |
vgsp-sema: re-seed and apply the first release of a fresh CE channel when the pool word is residue (ISSUE-0002)
A fresh session's first CE release could read a previous session's value
through the just-injected pool pin (r64: cur=134 pay=1; r63: cur=114696).
svc_init_expected_payload seeded the channel expectation from that residue,
the release candidate then skipped as stale (payload <= cur) and the client's
first tracker wait never completed.
When the first GPFIFO entry of a fresh CE channel (submissions == 0) decodes a
pool release whose word reads ahead of the payload, treat the word as residue:
re-seed expected_sem_payload/entry_want from the payload and apply the release
absolute instead of skipping. Monotonic trackers make the absolute write
idempotent; displaced pins stay owned by the fan-out/pending paths. Bounded
'sema-chan: pool residue' diagnostic plus a residue counter in the drain line.
Diffstat (limited to 'kernel/gsp_phys_registry_img.h')
0 files changed, 0 insertions, 0 deletions
