E#3: Configuring guest state in the VMCS/VMCB
- Guest state is managed by:
- Intel: guest state fields in VMCS
- AMD: state save area in VMCB
- (E#3-1) Configure a guest based on the snapshot
- Some registers are not updated as part of world switch by hardware
- General purpose registers (GPRs) are examples
- (E#3-2) Initialize guest GPRs. They need to be manually saved and loaded by software
- Expected output: "physical address not available" error
- Intel
[CPU0 ]i| | RIP=000000000dd24e73 (000000000dd24e73) ... (0).[707060553] ??? (physical address not available) ... ERROR: panicked at '🐛 Non continuable VM exit 0x2', hypervisor\src\hypervisor.rs:126:17
- AMD
[CPU0 ]i| | RIP=000000000dd24e73 (000000000dd24e73) ... [CPU0 ]p| >>PANIC<< exception(): 3rd (14) exception with no resolution [CPU0 ]e| WARNING: Any simulation after this point is completely bogus ! (0).[698607907] ??? (physical address not available) ... (after pressing the enter key) ... ERROR: panicked at '🐛 Non continuable VM exit 0x7f', hypervisor\src\hypervisor.rs:126:17
- Intel
- 🎉Notice that we did receive VM exit, meaning we successfully switched to guest-mode