Maybe it's just me, but that seems like just the kind of non-intuitive behavior that should be documented. :-) On Mon, Mar 11, 2019 at 2:23 PM Sean Christopherson <sean.j.christopherson@xxxxxxxxx> wrote: > > On Mon, Mar 11, 2019 at 02:19:03PM -0700, Jim Mattson wrote: > > How does early %rip advancement interact with KVM_GUESTDBG_SINGLESTEP? > > It seems a bit odd to get the KVM_EXIT_DEBUG for the I/O instruction > > *before* the KVM_EXIT_IO for the I/O instruction. > > It effectively suppresses the single step because vcpu->run->exit_reason > gets overwritten with KVM_EXIT_IO. kvm_fast_pio() cheeses things and > calls kvm_fast_pio_{in,out}() even if kvm_skip_emulated_instruction() > requests an exit.