summaryrefslogtreecommitdiffstats
path: root/wiki/open-iov.org/images/b
diff options
context:
space:
mode:
authorArthur Hanson Rasmusson <arthur@vgpu.io>2026-10-23 20:21:24 -0400
committerArthur Hanson Rasmusson <arthur@vgpu.io>2026-10-23 20:21:24 -0400
commit1e5be920add0dfd2d5c388b9cf8a4a09f3e72e37 (patch)
tree3f062014019f855e10b73cdd7ca42b18cb25d090 /wiki/open-iov.org/images/b
parentbd01273cd1b221f55eb484e8b7fd742417a4d4bd (diff)
downloadopen-iov-1e5be920add0dfd2d5c388b9cf8a4a09f3e72e37.tar.gz
open-iov-1e5be920add0dfd2d5c388b9cf8a4a09f3e72e37.zip
vgsp-rm r579: post the event notifyIndex INDEX field, not the overloaded registration word
THE 2nd-client event-wait root cause (live guest Oops): the NV01_EVENT registration word we echoed (e.g. 0x3c00000c) is an OVERLOADED field - cl0005.h: INDEX=bits[15:0], SUBDEVICE=bits[23:16], FLAGS=bits[31:24] - but the guest's _kgspRpcPostEvent passes the payload's notifyIndex straight to gpuNotifySubDeviceEvent_IMPL, which indexes its notifier array with it. Posting 0x3c00000c produced a wild pointer (base + 0x3c00000c*4 + 0x1508) and a kernel Oops on every dispatched event: BUG: unable to handle page fault for address: ffffd04d4235f808 RIP: gpuNotifySubDeviceEvent_IMPL+0x21f [nvidia] RAX: 000000003c00000c note: victory_matmul[12151] exited with irqs disabled Fixing recursive fault but reboot is needed! The Oops killed the dispatch before osNotifyEvent/nv_post_event (hence the r576/r577 experiments: records consumed, nv_post_event=0, independent of sequence/bNotifyList/hClient), dropped every event, and tainted the guest kernel - clients that needed an event wake (the 2nd-client device-state spins) wedged. Mask the posted notifyIndex to bits[15:0] (the INDEX field). Also loadable probe r578: gsp_rm_ev_func (event records carry a caller-chosen RPC function for reachability tests).
Diffstat (limited to 'wiki/open-iov.org/images/b')
0 files changed, 0 insertions, 0 deletions