[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v3 for 4.10] x86/vpt: guarantee the return value of pt_update_irq() set in vIRR or PIR
>>> On 20.10.17 at 15:23, <julien.grall@xxxxxxxxxx> wrote: > On 20/10/17 12:42, Jan Beulich wrote: >>>>> On 20.10.17 at 02:35, <chao.gao@xxxxxxxxx> wrote: >>> pt_update_irq() is expected to return the vector number of periodic >>> timer interrupt, which should be set in vIRR of vlapic or in PIR. >>> Otherwise it would trigger the assertion in vmx_intr_assist(), please >>> seeing >>> https://lists.xenproject.org/archives/html/xen-devel/2017-10/msg00915.html. >>> >>> But it fails to achieve that in the following two case: >>> 1. hvm_isa_irq_assert() may not set the corresponding bit in vIRR for >>> mask field of IOAPIC RTE is set. Please refer to the call tree >>> vmx_intr_assist() -> pt_update_irq() -> hvm_isa_irq_assert() -> >>> assert_irq() -> assert_gsi() -> vioapic_irq_positive_edge(). The patch >>> checks whether the vector is set or not in vIRR of vlapic or PIR before >>> returning. >>> >>> 2. someone changes the vector field of IOAPIC RTE between asserting >>> the irq and getting the vector of the irq, leading to setting the >>> old vector number but returning a different vector number. This patch >>> allows hvm_isa_irq_assert() to accept a callback which can get the >>> interrupt vector with irq_lock held. Thus, no one can change the vector >>> between the two operations. >>> >>> BTW, the first argument of pi_test_and_set_pir() should be uint8_t >>> and I take this chance to fix it. >>> >>> Signed-off-by: Chao Gao <chao.gao@xxxxxxxxx> >> >> Reviewed-by: Jan Beulich <jbeulich@xxxxxxxx> > > Do you have any opinion on this patch going to Xen 4.10? Well, the author having hopes that this addresses the assertion failure we keep seeing in osstest every once in a while, I think we certainly want to have it despite me not being fully convinced that it'll actually help. I'm sufficiently convinced though it won't do any bad. Jan _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |