diff options
| author | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-10-19 20:03:33 -0400 |
|---|---|---|
| committer | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-10-19 20:03:39 -0400 |
| commit | ae7848021ec10dd25c48f3244c4bca7adc79f2d5 (patch) | |
| tree | 1a34ab8b4f7d0027179189f4f8159cf4ee530d49 /userspace/lib/libvgpu.c | |
| parent | 79952c695ab929982a03996226ed180c2bbc58c7 (diff) | |
| download | open-iov-ae7848021ec10dd25c48f3244c4bca7adc79f2d5.tar.gz open-iov-ae7848021ec10dd25c48f3244c4bca7adc79f2d5.zip | |
vgsp: fail4 - route pending-pass releases through opdef withholding (cold-run gap)
The fwd-defer arm took priority over svc_opdef_release, so a pass whose op
was still pending recorded its fence release in svc_fwd_rel (applied at the
hold break / fallback) instead of the opdef slot - the fence fired while
the copy was still owed, the driver refilled the ping-pong staging, and the
late capture/read got refilled bytes (cold-run vector_add gap: one to four
chunks per cold boot). svc_fwd_defer_arm() is now skipped when
svc.op_tr_pending, so those releases go through svc_opdef_release and apply
only when the retried pass has no pending op (the op has run by then).
Measured cold-run vector_add bad across this iteration: 193536 -> 100352
(r323) -> 479232 (r324 wrong queue-pending experiment, reverted) -> 66560
(r325, ~1 chunk). All other acceptance items green on r325 (mail OK, smi OK,
matmul OK, transformer OK).
Diffstat (limited to 'userspace/lib/libvgpu.c')
0 files changed, 0 insertions, 0 deletions
