On 24.02.20 19:56, Paolo Bonzini wrote:
vmx_check_intercept is not yet fully implemented. To avoid emulating instructions disallowed by the L1 hypervisor, refuse to emulate instructions by default. Cc: stable@xxxxxxxxxxxxxxx [Made commit, added commit msg - Oliver] Signed-off-by: Oliver Upton <oupton@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> --- arch/x86/kvm/vmx/vmx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/x86/kvm/vmx/vmx.c b/arch/x86/kvm/vmx/vmx.c index dcca514ffd42..5801a86f9c24 100644 --- a/arch/x86/kvm/vmx/vmx.c +++ b/arch/x86/kvm/vmx/vmx.c @@ -7164,7 +7164,7 @@ static int vmx_check_intercept(struct kvm_vcpu *vcpu, } /* TODO: check more intercepts... */ - return X86EMUL_CONTINUE; + return X86EMUL_UNHANDLEABLE; } #ifdef CONFIG_X86_64
Is this expected to cause regressions on less common workloads? Jailhouse as L1 now fails when Linux as L2 tries to boot a CPU: L2-Linux gets a triple fault on load_current_idt() in start_secondary(). Only bisected so far, didn't debug further. Jan