On 28/11/2016 19:34, Kyle Huey wrote: >> > 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. > The processor does this automatically. "When accessing an exception or > interrupt handler through either an interrupt gate or a trap gate, the > processor clears the TF flag in the EFLAGS register after it saves the > contents of the EFLAGS register on the stack." (Vol 3, 6.12.1.2) > Empirically, this holds when injecting an exception on VM entry. If > you take the x86/debug.c test from kvm-unit-tests and inspect RFLAGS > in handle_db (not regs->rflags, but the actual RFLAGS register while > running the exception handler) the TF is clear. And, if you modify my > patch to clear TF before returning, the single stepping ceases after > the CPUID instruction because the TF was in fact cleared for good. Ok, then that would be a bug in kvm_vcpu_check_singlestep (because kvm_vcpu_check_singlestep is mostly interesting for real mode emulation, I checked kvm_inject_realmode_interrupt and it clears TF too, in __emulate_int_real). 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