On 28/11/2016 17:13, Kyle Huey wrote: > On Mon, Nov 28, 2016 at 3:42 AM, Paolo Bonzini <pbonzini@xxxxxxxxxx> wrote: >> This code is pretty much the same as kvm_vcpu_check_singlestep. Let's >> not duplicate the code and implement skip_emulated_instruction can be >> implemented in x86.c, like >> >> unsigned long rflags = kvm_x86_ops->get_rflags(vcpu); >> int r = EMULATE_DONE; >> >> /* This would be the no_trap variant */ >> kvm_x86_ops->skip_emulated_instruction(vcpu); >> kvm_vcpu_check_singlestep(vcpu, rflags, &r); >> return r == EMULATE_DONE; >> >> (because x86.c/vmx.c/svm.c are separate modules, when moving the function >> to x86.c you should rename it to kvm_skip_emulated_instruction). >> >> Paolo > > They're not exactly the same. For some reason I don't understand > kvm_vcpu_check_singlestep clears the trap flag. Perhaps that is also > a bug? The Intel manual says "The processor clears the TF flag before calling the exception handler" (17.3.1.4), so I think you should do it too. Paolo -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html