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

Gleb Natapov
2013-03-12T13:25:21Z

On Tue, Mar 12, 2013 at 02:16:29PM +0100, Jan Kiszka wrote:
> On 2013-03-12 14:13, Paolo Bonzini wrote:
> > Il 12/03/2013 14:01, Jan Kiszka ha scritto:
> >>>>>> For example, should kvm_arch_interrupt_allowed return zero if the VCPU
> >>>>>> is in the INIT_RECEIVED state?
> >>>>
> >>>> Yeah, that probably makes sense beyond async_pf.
> >> Wait: If you perform a proper reset on INIT already, we would clear IF
> >> thus prevent also async_pf injections. On the other hand,
> >> kvm_arch_can_inject_async_page_present returns true if apf.msr_val &
> >> KVM_ASYNC_PF_ENABLED is not set - shouldn't that be cleared on reset as
> >> well? Hmm...
> >
> > So if you split the reset (which is done on INIT) from setting up CS on
> > SIPI, you kill two birds with a stone, or at least one and a half: you
> > clear IF as you wrote above, and INIT on BSP almost works (the only
> > missing bit should be setting the mp_state to KVM_MP_STATE_RUNNABLE).
>
> ...unless the async_pf MSR is cleared on reset as well.
>
It is:
vcpu->arch.apf.msr_val = 0;
--
Gleb.