[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
>>> On 08.09.15 at 11:36, <feng.wu@xxxxxxxxx> wrote: > >> -----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? #1 ;-) (the earlier one, to avoid you guessing) Jan _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |