FEX/docs/VMCore.md
2020-03-06 09:08:13 +02:00

884 B

FEX - Virtual Machine Custom CPUBackend


This is a custom CPU backend that is used by the FEX frontend for its Lockstep Runner. This is used for hardware validation of CPU emulation of the FEXCore's emulation.

Implementation details

This is implemented using the VM helper library that is living inside of SonicUtils. The helper library sets up a VM using KVM under Linux.

Limitations

  • Only works under KVM
    • I don't care about running under Windows, MacOS, or other hypervisors
  • Only works under AMD
    • Haven't spent time figuring out why it breaks, Intel throws a VMX invalid state entry error.
  • Can't launch a bunch of instances due to memory limitations
    • Each VM allocates the full VM's memory region upon initialization
    • If you launch a VM with 64GB of memory then that full amount is allocated right away