On 18.07.19 09:59, Paolo Bonzini wrote: > On 12/07/19 09:15, Wanpeng Li wrote: >> diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c >> index b4ab59d..2c46705 100644 >> --- a/virt/kvm/kvm_main.c >> +++ b/virt/kvm/kvm_main.c >> @@ -2404,8 +2404,10 @@ void kvm_vcpu_kick(struct kvm_vcpu *vcpu) >> int me; >> int cpu = vcpu->cpu; >> >> - if (kvm_vcpu_wake_up(vcpu)) >> + if (kvm_vcpu_wake_up(vcpu)) { >> + vcpu->preempted = true; >> return; >> + } >> >> me = get_cpu(); >> if (cpu != me && (unsigned)cpu < nr_cpu_ids && cpu_online(cpu)) >> > > Who is resetting vcpu->preempted to false in this case? This also > applies to s390 in fact. Isnt that done by the sched_in handler?