On Thu, Apr 12, 2018 at 8:12 AM, KarimAllah Ahmed <karahmed@xxxxxxxxx> wrote: > v2 -> v3: > - Remove the forced VMExit from L2 after reading the kvm_state. The actual > problem is solved. > - Rebase again! > - Set nested_run_pending during restore (not sure if it makes sense yet or > not). This doesn't actually make sense. Nested_run_pending should only be set between L1 doing a VMLAUNCH/VMRESUME and the first instruction executing in L2. That is extremely unlikely at a restore point. To deal with nested_run_pending and nested save/restore, nested_run_pending should be set to 1 before calling enter_vmx_non_root_mode, as it was prior to commit 7af40ad37b3f. That means that it has to be cleared when emulating VM-entry to the halted state (prior to calling kvm_vcpu_halt). And all of the from_vmentry arguments that Paolo added when rebasing commit cf8b84f48a59 should be removed, so that nested_run_pending is propagated correctly duting a restore. It should be possible to eliminate this strange little wart, but I haven't looked deeply into it.