Skip to content

Service x86 device exits within a cancellable native execution call - #212

Merged
Vbitz merged 1 commit into
mainfrom
agent/nt-exit-dispatch
Sep 22, 2026
Merged

Vbitz merged 1 commit into
mainfrom
agent/nt-exit-dispatch

Conversation

@Vbitz

@Vbitz Vbitz commented Sep 22, 2026 •

Copy link
Copy Markdown
Collaborator

Windows NT guests generate sustained streams of device exits. Returning through the outer execution setup for every handled exit adds overhead and makes timer delivery harder to coordinate.

Add X86.RunUntil to service handled exits synchronously inside one native execution call while retaining context cancellation, exact unhandled exits, and handler errors. Run delegates to the same implementation. Document borrowed I/O-buffer lifetime and concurrent SetIRQ delivery, including the requirement to join delivery before closing the machine.

Validation: GOWORK=off go test ./hypervisor -run TestX86 -count=1 passes on Linux/amd64 with KVM. The regression exercises handled exit streams, cancellation, handler errors, and resumption. Used by the x86/x64 Windows NT smoke campaign in trex and TinyRangeX.

Merge order: this PR → tinyrange/trex#48 → https://github.com/tinyrange/tinyrangex/pull/76. Both downstream repositories pin the corresponding dependency commits.

@Vbitz
Vbitz added this pull request to the merge queue Sep 22, 2026
Merged via the queue into main with commit ef1ecd6 Sep 22, 2026
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant