HomeFreeBSD

Simplify register state save and restore across a VMRUN:

Description

Simplify register state save and restore across a VMRUN:

  • Host registers are now stored on the stack instead of a per-cpu host context.
  • Host %FS and %GS selectors are not saved and restored across VMRUN.
    • Restoring the %FS/%GS selectors was futile anyways since that only updates the low 32 bits of base address in the hidden descriptor state.
    • GS.base is properly updated via the MSR_GSBASE on return from svm_launch().
    • FS.base is not used while inside the kernel so it can be safely ignored.
  • Add function prologue/epilogue so svm_launch() can be traced with Dtrace's FBT entry/exit probes. They also serve to save/restore the host %rbp across VMRUN.

Reviewed by: grehan
Discussed with: Anish Gupta (akgupt3@gmail.com)

Details

Provenance
neelAuthored on
Reviewer
grehan
Parents
rS272194: MFC revisions 271553, 271567:
Branches
Unknown
Tags
Unknown

Event Timeline