summaryrefslogtreecommitdiffstats
path: root/kernel/dynamic_rpc_dispatcher.c
diff options
context:
space:
mode:
authorArthur Hanson Rasmusson <arthur@vgpu.io>2026-09-28 17:09:51 -0400
committerArthur Hanson Rasmusson <arthur@vgpu.io>2026-09-28 17:09:51 -0400
commitf76cc29760cfe8c02d7171b5a3862236c07cbc18 (patch)
tree22e9ebbf4851bee279e71e974003be7389d5a01e /kernel/dynamic_rpc_dispatcher.c
parente55df21c9ff11686d079a77258f7b817b0868bdb (diff)
downloadopen-iov-f76cc29760cfe8c02d7171b5a3862236c07cbc18.tar.gz
open-iov-f76cc29760cfe8c02d7171b5a3862236c07cbc18.zip
sema: rescue by exact release group at any offset, with validated pin alignment
Kernel: the slot-aligned failing entries carry pushes whose release group is not at the page's fixed +0x10 offset, so the shape matcher found nothing. Scan every 4-byte offset for the exact group (hdr 0x20038090, hi==1, lo&0xfff==slot, follower LAUNCH_DMA sem-release; payload may lag the tracked expectation) with the header compared first. Each match yields two candidate pin bases - the group's page and the page implied by treating the group as the end of this entry's push - and each candidate is validated by pinning and reading the entry VA back before it is accepted. Live: 13 rescues pinned the MEMOPS slots; the 12700-byte push then decoded to 29 op-runs with a real release, and memset=338 fills (page-table clears) executed ~13 s before the client's rc=999.
Diffstat (limited to 'kernel/dynamic_rpc_dispatcher.c')
0 files changed, 0 insertions, 0 deletions