summaryrefslogtreecommitdiffstats
path: root/wiki/open-iov.org/index.php?title=Mdev-GPU&action=info.html
diff options
context:
space:
mode:
authorArthur Hanson Rasmusson <arthur@vgpu.io>2026-10-23 16:13:24 -0400
committerArthur Hanson Rasmusson <arthur@vgpu.io>2026-10-23 16:13:24 -0400
commitcc60d6dcce1c6ee956c43a5c6d2bb639660ac5ec (patch)
treefac215f80806780fb9a5c46ec7b777fc48c6667d /wiki/open-iov.org/index.php?title=Mdev-GPU&action=info.html
parent4094a7ea7e8ed92f323e856fcac3717df0f4b401 (diff)
downloadopen-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=Mdev-GPU&action=info.html')
0 files changed, 0 insertions, 0 deletions