VMX has a lot of issues that we aren't dealing with. Do a git log on arch/x86/kvm/vmx.c in Linux, and you'll find a list of things to fix.
For instance, the hardware resets the GDT limit when we do a vmexit. Linux handled that here: https://www.spinics.net/lists/kvm/msg38973.html. We probably used to have it, but lost it during the big rewrite - pretty much because there was no comment about why the GDT was being reloaded. We probably need to handle that when we 'finalize' the context.
VMX has a lot of issues that we aren't dealing with. Do a git log on arch/x86/kvm/vmx.c in Linux, and you'll find a list of things to fix.
For instance, the hardware resets the GDT limit when we do a vmexit. Linux handled that here: https://www.spinics.net/lists/kvm/msg38973.html. We probably used to have it, but lost it during the big rewrite - pretty much because there was no comment about why the GDT was being reloaded. We probably need to handle that when we 'finalize' the context.
Similarly, there's some issue with the task register: https://patchwork.kernel.org/patch/9583281/ (x86/kvm/vmx: Defer TR reload after VM exit).