diff options
| author | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-10-20 06:46:26 -0400 |
|---|---|---|
| committer | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-10-20 06:46:26 -0400 |
| commit | 1cde51713fee3daf3fadea9c5bba64b0d9fb9ba0 (patch) | |
| tree | 7512df28446bae51ed581913a4b674362ed33e4e /wiki/open-iov.org/index.php/Introductory_Concepts_&_Definitions.html | |
| parent | 410532fb29d53d307cdd55fa0da5cf6f1d2faace (diff) | |
| download | open-iov-1cde51713fee3daf3fadea9c5bba64b0d9fb9ba0.tar.gz open-iov-1cde51713fee3daf3fadea9c5bba64b0d9fb9ba0.zip | |
vgsp: C56F acquire wait gate as an opt-in experiment (default off)
The streams2 readback-before-scale class is root-caused: core CUDA
starts compute-channel pushes with a C56F SEM_EXECUTE acquire
(ACQ_CIRC_GEQ on a tracking semaphore; e.g. the D2H readback push
waits on 0x20400fef0 >= its sequence number) and the decoder ignored
it, so the copy ran ahead of the scale launch it waits for. The gate
implemented here (decode the acquire; svc_run_ops holds the push's
work until the semaphore satisfies, with the driver's
release(N)+acquire(N) same-push pattern treated as satisfied;
op-pending bounded hold; kill switch at 2048 holds; diagnostics
sema-wait held rows with a per-session budget) OVER-HOLDS on boots
where a channel's first pushes wait on counter values only their own
withheld release would install (wait counts reach thousands, the
client stalls; r337/r338/r339). The tracking-semaphore value
semantics (what the guest word should read vs the driver's sequence
numbers) need a dedicated pass before this can be enabled.
Default OFF so behaviour is the pre-r336 one; enable per-boot with
sema_wait_gate=1 for the experiment. Everything else (pin-wins,
vector_add, the battery) is unaffected.
Diffstat (limited to 'wiki/open-iov.org/index.php/Introductory_Concepts_&_Definitions.html')
0 files changed, 0 insertions, 0 deletions
