diff options
| author | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-10-23 16:13:24 -0400 |
|---|---|---|
| committer | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-10-23 16:13:24 -0400 |
| commit | cc60d6dcce1c6ee956c43a5c6d2bb639660ac5ec (patch) | |
| tree | fac215f80806780fb9a5c46ec7b777fc48c6667d /wiki/open-iov.org/index.php?title=Special:UserLogin&returnto=Talk:Mdev-GPU.html | |
| parent | 4094a7ea7e8ed92f323e856fcac3717df0f4b401 (diff) | |
| download | open-iov-cc60d6dcce1c6ee956c43a5c6d2bb639660ac5ec.tar.gz open-iov-cc60d6dcce1c6ee956c43a5c6d2bb639660ac5ec.zip | |
vgsp-sema r561: bound the pin-injection drain per service pass (starved ring walk)
r559 soak2 evidence (victory_saxpy, 167 s at 100% CPU, module alive and
printing stats but consuming no GPFIFO entries): the guest pin stream
flooded the injection queue (svc_handle_map_add: 1867-6101 callbacks
suppressed per burst, several bursts per 10 s) and the unbounded for(;;)
drain spent every service pass processing injections, so the ring walk
never ran - work_guard counters froze (deferred=513 applied=50 unchanged
for minutes) and the client spun.
Process at most 64 queued requests per svc_handle_map_add() call. The
drain runs again on every service pass and from svc_gr_request/
svc_run_ops, so nothing is lost; under a flood the ring walk now gets its
cycles every pass. Bounded batches are the same fairness rule the ring
walk itself already uses.
Diffstat (limited to 'wiki/open-iov.org/index.php?title=Special:UserLogin&returnto=Talk:Mdev-GPU.html')
0 files changed, 0 insertions, 0 deletions
