diff options
| author | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-09-30 20:52:06 -0400 |
|---|---|---|
| committer | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-09-30 20:52:06 -0400 |
| commit | 662d3d49d6d43b33da72196d6e1060ed7cc043ab (patch) | |
| tree | ead3a31a3d3e11d4ddd8080004032291a6c13b4c /kernel/main.c | |
| parent | 83ded3466f0f6367387be6c74dbeea9fe0e661f8 (diff) | |
| download | open-iov-662d3d49d6d43b33da72196d6e1060ed7cc043ab.tar.gz open-iov-662d3d49d6d43b33da72196d6e1060ed7cc043ab.zip | |
sema-svc: detect a decoded release by count, not by the (unchanging) VA
The pump decided "this push carried a release" by comparing the last
decoded release VA before/after svc_decode_stream. Consecutive pushes on a
channel release to the SAME tracking-semaphore VA (UVM's tracker pattern),
so every push after the first read as release-less: the entry was held for
the full CE grace window (observed: exactly one push consumed per 8 s,
gating the whole runtime init; the release itself had already been applied
by the decode, only the pump's bookkeeping stalled).
svc_rel_count now increments on every decoded release (host sem block,
REPORT_SEM block, CE launch-DMA release) and the pump compares counts at
all three sites (initial decode, rescue re-route, rescued-page retry).
Diffstat (limited to 'kernel/main.c')
0 files changed, 0 insertions, 0 deletions
