diff options
author | Dave Voutila <dv@cvs.openbsd.org> | 2021-12-04 18:51:37 +0000 |
---|---|---|
committer | Dave Voutila <dv@cvs.openbsd.org> | 2021-12-04 18:51:37 +0000 |
commit | a02c4f2a2e9519430b5bd0bdc5d15c8812cb93b1 (patch) | |
tree | 05b69af8e7d7940c7b325c65b6f309d2be63c1e4 /games/wargames | |
parent | d917264387a73dfa131ea719102227c2e4c3b39a (diff) |
vmm(4): reload vmcs after possible sleep points
Guests running on Intel hosts that sleep on a lock might have their
process moved to another cpu core by the scheduler. If this happens,
the VMCS needs to be remotely cleared and locally loaded otherwise
vmx instructions will fail. vmd(8) will receive a failure code and
abort the guest.
This change stores the current (last) cpu the process was on before
attempting a function call that may sleep (e.g. uvm_fault(9)). Upon
function return, perform the VMCS dance if needed.
Tested with help from Mischa Pieters.
OK mlarkin@
Diffstat (limited to 'games/wargames')
0 files changed, 0 insertions, 0 deletions