[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v6 15/18] vmx: Properly handle notification event when vCPU is running
> -----Original Message----- > From: Jan Beulich [mailto:JBeulich@xxxxxxxx] > Sent: Tuesday, September 08, 2015 5:31 PM > To: Wu, Feng > Cc: Andrew Cooper; Tian, Kevin; Zhang, Yang Z; xen-devel@xxxxxxxxxxxxx; Keir > Fraser > Subject: RE: [PATCH v6 15/18] vmx: Properly handle notification event when > vCPU is running > > >>> On 08.09.15 at 11:23, <feng.wu@xxxxxxxxx> wrote: > > >> > >> Now that you say it, this looks even more odd: Why would you need > >> to raise that softirq if the only way to come here is via the triggering > >> in __vmx_deliver_posted_interrupt() (which already raised that > >> softirq)? I suppose I must be missing something... > > > > Before VT-d PI, __vmx_deliver_posted_interrupt() is the only way > > to trigger interrupt with vector ' posted_intr_vector ', but after > > introducing VT-d PI, VT-d hardware can issue the interrupt with > > that vector as well. In __vmx_deliver_posted_interrupt(), it set > > the softirqs, the reason of which is described in the comments > > of pi_notification_interrupt(), however, I need do the same thing > > when VT-d hardware issue the interrupt, so pi_notification_interrupt() > > is the proper place to do it. > > But again - my main concern is about the !iommu_intpost case: What > good does the raising of the softirq there? (As a general remark - > please, when you add code to support a new feature, don't just > think about the case where the new feature is available in hardware, > but also about the case where it's not. While over time the set of > systems lacking the feature will likely decrease, initially it may be the > vast majority of systems Xen gets run on which would get penalized.) No problem. Two solutions: #1, Register pi_notification_interrupt when iommu_intpost and still use event_check_interrupt in the !iommu_intpost case. #1, Use pi_notification_interrupt() for both iommu_intpost and !iommu_intpost, add the following check it: if ( iommu_intpost ) raise_softirq(VCPU_KICK_SOFTIRQ); Which one do you prefer? Thanks, Feng > > Jan _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |