From mboxrd@z Thu Jan 1 00:00:00 1970 From: Keir Fraser Subject: Re: [VTD][patch 0/5] HVM device assignment using vt-d Date: Thu, 31 May 2007 16:03:21 +0100 Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: "Tian, Kevin" , Keir Fraser , Guy Zana , "Kay, Allen M" , xen-devel@lists.xensource.com List-Id: xen-devel@lists.xenproject.org On 31/5/07 14:59, "Tian, Kevin" wrote: > But... still one question, seems that current Xen doesn't allow > multiple end() methods called for one physical interrupt instance, > while a new physical interrupt will happen only as result of end() > (EOI for ioapic_new, and unmask RTE for ioapic_old). See below > case: Yeah, well I haven't looked at how the Neocleus patches actually deal with this, but I expect they might steal hvm-bound physical irqs completely, hook them off early in do_IRQ() and have bespoke code to deal with them. Possibly it could be integrated with existing ->ack and ->end methods, actually. ->end() would be no-op while ->ack() would switch polarity in the IOAPIC and then EOI the LAPIC. Then the handler function called by do_IRQ() would toggle virtual HVM wires. Anyhow, integrating with existing Xen IRQ handling subsystem clearly isn't a rocket-science problem. :-) -- Keir