[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v4] x86/apicv: fix RTC periodic timer and apicv issue
> From: Xuquan (Quan Xu) [mailto:xuquan8@xxxxxxxxxx] > Sent: Wednesday, December 21, 2016 1:44 PM > > When Xen apicv is enabled, wall clock time is faster on Windows7-32 > guest with high payload (with 2vCPU, captured from xentrace, in > high payload, the count of IPI interrupt increases rapidly between > these vCPUs). > > If IPI intrrupt (vector 0xe1) and periodic timer interrupt (vector 0xd1) > are both pending (index of bit set in vIRR), unfortunately, the IPI > intrrupt is high priority than periodic timer interrupt. Xen updates > IPI interrupt bit set in vIRR to guest interrupt status (RVI) as a high > priority and apicv (Virtual-Interrupt Delivery) delivers IPI interrupt > within VMX non-root operation without a VM-Exit. Within VMX non-root > operation, if periodic timer interrupt index of bit is set in vIRR and > highest, the apicv delivers periodic timer interrupt within VMX non-root > operation as well. > > But in current code, if Xen doesn't update periodic timer interrupt bit > set in vIRR to guest interrupt status (RVI) directly, Xen is not aware > of this case to decrease the count (pending_intr_nr) of pending periodic > timer interrupt, then Xen will deliver a periodic timer interrupt again. > > And that we update periodic timer interrupt in every VM-entry, there is > a chance that already-injected instance (before EOI-induced exit happens) > will incur another pending IRR setting if there is a VM-exit happens > between virtual interrupt injection (vIRR->0, vISR->1) and EOI-induced > exit (vISR->0), since pt_intr_post hasn't been invoked yet, then the > guest receives more periodic timer interrupt. > > So we set eoi_exit_bitmap for intack.vector when it's higher than > pending periodic time interrupts. This way we can guarantee there's > always a chance to post periodic time interrupts when periodic time > interrupts becomes the highest one. > > Signed-off-by: Quan Xu <xuquan8@xxxxxxxxxx> Thanks for your consistent work on fixing this tricky issue: Acked-by: Kevin Tian <kevin.tian@xxxxxxxxx> _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |