diff options
| author | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-09-30 21:11:09 -0400 |
|---|---|---|
| committer | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-09-30 21:11:09 -0400 |
| commit | b4e2f15b534f550c515f625fdcb06dc9908456ab (patch) | |
| tree | 994f65c25f5067614df77b7b846417982dd3e87f /kernel/Makefile | |
| parent | 104ef088554a3dc5e2362a0ce3d6b2e0ccc0f6d8 (diff) | |
| download | open-iov-b4e2f15b534f550c515f625fdcb06dc9908456ab.tar.gz open-iov-b4e2f15b534f550c515f625fdcb06dc9908456ab.zip | |
sema-svc: rewind replays may only be skipped when their release was delivered
The per-put-epoch consumed-slot skip must not suppress a slot whose entry
was consumed *without* delivering its release (the CE grace expiry in real
mode): the driver-API smoke test's CE pushes are consumed unreadable before
their ring pin lands and depend on the pin-batch rewind replaying them once
the translation appears. The skip now applies only to slots whose
consumption delivered a release:
- tail consumption records a slot when the iteration decoded a release
(svc_rel_count delta); the sweep-delivered entry_want consume and the
fake-release consume always record
- the grace-expiry consume records only when a recovery (fake or
sema_rel_recover) delivered the release
- svc_fake_release counts as a delivered release
So real-mode replays still re-process undelivered entries, while the
runtime-client case (readable pushes delivered immediately) keeps the
fast path that removed the 8 s stalls.
Diffstat (limited to 'kernel/Makefile')
0 files changed, 0 insertions, 0 deletions
