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 | 756fdfd6b2090b731b34846b1b23b726bb3978ec (patch) | |
| tree | e66cf80ae1e0cc4b2398d023b9ea94b48a3d5414 /kernel/Makefile | |
| parent | 0c4613466659fa6291442f9a8edefe584dc9262c (diff) | |
| download | open-iov-756fdfd6b2090b731b34846b1b23b726bb3978ec.tar.gz open-iov-756fdfd6b2090b731b34846b1b23b726bb3978ec.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
