summaryrefslogtreecommitdiffstats
path: root/kernel/gsp_rm_emulation.c
diff options
context:
space:
mode:
authorArthur Hanson Rasmusson <arthur@vgpu.io>2026-10-26 11:21:24 -0400
committerArthur Hanson Rasmusson <arthur@vgpu.io>2026-10-26 11:21:24 -0400
commit72de0beddb255c582f4718526af8e9357a9e36f8 (patch)
tree5601c204b1097ee53a8cd9fe9480c9046aa57ad1 /kernel/gsp_rm_emulation.c
parentd3f523587ee743c396957fa5399b8e68238e9786 (diff)
downloadopen-iov-72de0beddb255c582f4718526af8e9357a9e36f8.tar.gz
open-iov-72de0beddb255c582f4718526af8e9357a9e36f8.zip
vgsp-sema: SESSION 132 ring-latch truth + per-client util witnesses - the r759 false positive is fixed at three points: (1) a ring candidate whose entry0 push provably reads all-zero through the client's own page tables is rejected when the VAS walk resolves the ring VA to a page with a live entry (svc_ring_entry_dead + svc_ring_walk_live, applied at the userd-derived, FB-convention and existing-pin paths; the walk cannot vote for itself); (2) svc_gr_ring_candidate now rejects dead-entry candidates too and accepts the channel's known USERD cross-aperture (r759: ring in guest RAM 0x11623d000, USERD in vidmem 0xb0000, so the walk-resolved ring failed the same-aperture USERD probe); (3) the util sweep arbitrates a dead channel-path ring entry against the direct VAS walk per slot. Also: util-dec/util-sweep witness budgets and their dedup keys become per-client (reset in svc_session_flush) and the sema-copyent witness logs once per copy op instead of per row (a 480-row frame copy alone exhausted the 128/session budget and hid every later copy, including any SASS upload)
Diffstat (limited to 'kernel/gsp_rm_emulation.c')
0 files changed, 0 insertions, 0 deletions