[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH] vlapic/viridian: abort existing APIC assist if any vector is pending in ISR



>>> On 07.03.17 at 15:58, <paul.durrant@xxxxxxxxxx> wrote:
> The vlapic code already aborts an APIC assist if an interrupt is deferred
> because a higher priority interrupt has already been delivered (and hence
> its vector is pending in the ISR).
> 
> However, it is also necessary to abort an APIC assist in the case where a
> higher priority is about to be delivered because, in either case, at least
> two vectors will be pending in the ISR and hence an EOI is necessary.
> 
> Also, following on from the above reasoning, the decision to start a new
> APIC assist should clearly be based upon whether any other vector is
> pending in the ISR, regardless of whether it is lower or higher in
> priority. (In fact the code in question cannot be reached if the
> vector is lower in priority). Thus the single use of
> vlapic_find_lowest_vector() can be replaced with a call to
> vlapic_find_highest_isr() and the former function removed.
> 
> Without this patch, because the logic is flawed, a domain_crash() results
> when an attempt is made to erroneously start a new APIC assist.
> 
> Reported-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
> Signed-off-by: Paul Durrant <paul.durrant@xxxxxxxxxx>

Reviewed-by: Jan Beulich <jbeulich@xxxxxxxx>



_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.