[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v2] x86/apicv: fix RTC periodic timer and apicv issue
> From: Xuquan (Quan Xu) [mailto:xuquan8@xxxxxxxxxx] > Sent: Monday, October 17, 2016 5:28 PM > > >> > >>Back to the main open before holiday - multiple EOIs may come to clear > >>irq_issued before guest actually handles the very vpt injection > >>(possible if vpt vector is shared with other sources). I don't see a > >>good solution on that open... :/ > >> > >>We've discussed various options which all fail in one or another place > >>- either miss an injection, or incur undesired injections. > >>Possibly we should consider another direction - fall back to non-apicv > >>path when we see vpt vector pending but it's not the highest one. > >> > >>Original condition to enter virtual intr delivery: > >> else if ( cpu_has_vmx_virtual_intr_delivery && > >> intack.source != hvm_intsrc_pic && > >> intack.source != hvm_intsrc_vector ) > >> > >>now new condition: > >> else if ( cpu_has_vmx_virtual_intr_delivery && > >> intack.source != hvm_intsrc_pic && > >> intack.source != hvm_intsrc_vector && > >> (pt_vector == -1 || intack.vector == pt_vector) ) > >> > >>Thoughts? > >> > >Kevin, > >When I try to fix it as your suggestion, I cannot boot the guest, with below > >message(from xl dmesg): > > with Kevin's patch, the hypervisor always calls ' vmx_inject_extint() -> > __vmx_inject_exception()' to inject exception, then vm-entry on loop.. > the interrupt (PT or IPI, or others) can't deliver to guest.. > > and so far, we suppress MSR-based APIC suggestion when having APIC-V by > http://xenbits.xen.org/gitweb/?p=xen.git;a=commitdiff;h=7f2e992b824ec62a2818e643 > 90ac2ccfbd74e6b7 > so I think we couldn't fallback to non-apicv dynamically here.. > What about setting EOI exit bitmap for intack.vector when it's higher than pending pt_vector? This way we can guarantee there's always a chance to post pt_vector when pt_vector becomes the highest one... (of course you need make later pt_intr_post conditionally then, only when intack.vector==pt_vector) Thanks Kevin _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |