CVSROOT:        /cvs
Module name:    src
Changes by:     d...@cvs.openbsd.org    2021/12/04 11:51:37

Modified files:
        sys/arch/amd64/amd64: vmm.c 

Log message:
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@

Reply via email to