[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] x86/hvm: more sure APIC assist is aborted if guest EOIs APIC
>>> On 17.01.18 at 13:53, <paul.durrant@xxxxxxxxxx> wrote: > --- a/xen/arch/x86/hvm/vlapic.c > +++ b/xen/arch/x86/hvm/vlapic.c > @@ -422,6 +422,13 @@ void vlapic_EOI_set(struct vlapic *vlapic) > if ( vector == -1 ) > return; > > + /* > + * It is possible that APIC assist has been enabled by the guest but > + * it has chosen not to use it, by EOIing normally. It is therefore > + * necessary to abort any APIC assist that may have been started > + * to avoid confusing the state machine. > + */ > + viridian_abort_apic_assist(vlapic_vcpu(vlapic)); > vlapic_clear_vector(vector, &vlapic->regs->data[APIC_ISR]); Fundamentally fine, but is clearing bit 0 in the shared location a valid thing to do in this case? Plus shouldn't you pass in the vector, so the abort would only happen for the very vector that is pending? Iirc with nested interrupts normal EOI might still need to be used by Windows (as only a single vector can be in flight in the assist), so clearing the assist for the wrong vector might actually cause harm. Jan _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |