diff options
| author | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-09-29 21:39:00 -0400 |
|---|---|---|
| committer | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-09-29 21:39:00 -0400 |
| commit | 31f82600644660cbb1651115b04b4f7a8148fa49 (patch) | |
| tree | 7515e5600cfd63896c4973678b15032ebd80715a /tools | |
| parent | 035bd0e17ae0e5d3786bf250481883200c25feeb (diff) | |
| download | open-iov-31f82600644660cbb1651115b04b4f7a8148fa49.tar.gz open-iov-31f82600644660cbb1651115b04b4f7a8148fa49.zip | |
sema-svc: deliver the tracking-sem payload for every consumed GPFIFO entry
The client's UVM_REGISTER_GPU blocks in uvm_push_end_and_wait on the first
CE channel's tracking semaphore (pool word 0x121000000) waiting for value 3.
The pool payload stayed at 1 while the client pushed: the pump processed
entries whose push bytes were unreadable or had no decodable release, so the
release bookkeeping advanced (expected_sem_payload) but nothing was written
to the pool page.
Treat the GPU semantics as normative: each consumed GPFIFO entry on an engine
channel releases the channel's tracking semaphore with the incrementing
queued value. When the decoded stream carries no release and sema_fake_rel is
enabled, deliver the expected payload through svc_fake_release() instead of
only bumping the counter. Also initialize expected_sem_payload for a fresh
pool page whose current payload is 0 (expected = 1) so the first push is
deliverable from the start.
Diffstat (limited to 'tools')
0 files changed, 0 insertions, 0 deletions
