Re: [PATCH] KVM: x86: Convert INIT and SIPI signals into synchronously handled events

Paolo Bonzini
2013-03-12T13:43:44Z

Il 12/03/2013 14:41, Gleb Natapov ha scritto:
> Not sure I understand. I am saying the code should be:
>
> if (test_and_clear_bit(KVM_APIC_INIT, &apic->pending_events)) {
> vcpu->arch.mp_state = KVM_MP_STATE_INIT_RECEIVED;
> kvm_lapic_reset(vcpu);
> kvm_vcpu_reset(vcpu);
> }
> if (test_and_clear_bit(KVM_APIC_SIPI, &apic->pending_events) &&
> vcpu->arch.mp_state == KVM_MP_STATE_INIT_RECEIVED) {
> vcpu->arch.sipi_vector = apic->sipi_vector;
> }
>

Yes, this is also discussed in the async_pf thread. But kvm_vcpu_reset
is what sets CS based on the sipi_vector, so some more changes are
needed (or you can just reset the VCPU twice, but that's ugly...).

Paolo