summaryrefslogtreecommitdiffstats
path: root/wiki/open-iov.org/index.php?title=File:Device_Decomposure_and_Recomposure_via_VFIO.png&oldid=39...
diff options
context:
space:
mode:
authorArthur Hanson Rasmusson <arthur@vgpu.io>2026-11-02 15:22:04 -0500
committerArthur Hanson Rasmusson <arthur@vgpu.io>2026-11-02 15:22:04 -0500
commitbbd3450baa544d8e25f2048cec6dee21bffac7b2 (patch)
tree5f4c9848584d657c56dac60bcd468458dcdde485 /wiki/open-iov.org/index.php?title=File:Device_Decomposure_and_Recomposure_via_VFIO.png&oldid=399.html
parentbd658403569467ae2dd12d50da27c530643cb097 (diff)
downloadopen-iov-bbd3450baa544d8e25f2048cec6dee21bffac7b2.tar.gz
open-iov-bbd3450baa544d8e25f2048cec6dee21bffac7b2.zip
vgsp: CONT-113 - clamp keep_mask to capture-covered slots (r1405 poison root cause)
The r1405 priv-error wedge traced live: the draw window calls CALL_MME_MACRO(34)/(57) while the MME capture holds 13 SA slots (0..12, IR <= 0xe9); keep_mask=~0 exempted every slot from stubbing, so those calls ran, the MME fetched an instruction the packed program does not hold (info=badf1201 pc_valid=1 pc=513 mac=0x1f1 miss=1 ir=badf1201) and poisoned the lane; the second recovery's hard re-arm left the engine unresponsive (probe rc=-110, GP_GET frozen). Fix (one variable): gsp_phys_gr_slot_kept() - a keep_mask slot is only honored when the capture covers it (SA entry present AND its IR instruction entered the replay); otherwise the proven r1186 safe combination applies: SA stub + CALL-run drop, never a fetch of non-resident code. The decision reads the live SA table per window, so a later capture generation that covers the slot releases it automatically. Bounded MME-KEEP-CLAMP witness. Knob sema_gl_mme_keep_clamp (default 1; 0 = r1405 all-real A/B).
Diffstat (limited to 'wiki/open-iov.org/index.php?title=File:Device_Decomposure_and_Recomposure_via_VFIO.png&oldid=399.html')
0 files changed, 0 insertions, 0 deletions