Marcelo Tosatti wrote: > Interrupts that are injected during a vcpu event save/writeback cycle > are lost. > > Fix by writebacking the state before injecting interrupts. Good catch. If that code were to stay, I would now suggest to move the injection into pre_kvm_run instead, just like upstream does. But it I guess that doesn't matters anymore. Jan > > Signed-off-by: Marcelo Tosatti <mtosatti@xxxxxxxxxx> > > diff --git a/qemu-kvm.c b/qemu-kvm.c > index 91f0222..90ace20 100644 > --- a/qemu-kvm.c > +++ b/qemu-kvm.c > @@ -885,11 +885,6 @@ int pre_kvm_run(kvm_context_t kvm, CPUState *env) > { > kvm_arch_pre_run(env, env->kvm_run); > > - if (env->kvm_vcpu_dirty) { > - kvm_arch_load_regs(env, KVM_PUT_RUNTIME_STATE); > - env->kvm_vcpu_dirty = 0; > - } > - > pthread_mutex_unlock(&qemu_mutex); > return 0; > } > @@ -907,6 +902,10 @@ int kvm_run(CPUState *env) > int fd = env->kvm_fd; > > again: > + if (env->kvm_vcpu_dirty) { > + kvm_arch_load_regs(env, KVM_PUT_RUNTIME_STATE); > + env->kvm_vcpu_dirty = 0; > + } > push_nmi(kvm); > #if !defined(__s390__) > if (!kvm->irqchip_in_kernel) -- Siemens AG, Corporate Technology, CT T DE IT 1 Corporate Competence Center Embedded Linux -- 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