[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
Hi, On 20/10/17 15:16, Jan Beulich wrote: 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. I guess it is worth having a try then: Release-acked-by: Julien Grall <julien.grall@xxxxxxxxxx> Cheers, -- Julien Grall _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |