From mboxrd@z Thu Jan 1 00:00:00 1970 From: Keir Fraser Subject: Re: Multiple IRQ's in HVM for Windows Date: Sat, 27 Dec 2008 10:22:58 +0000 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: James Harper , xen-devel@lists.xensource.com List-Id: xen-devel@lists.xenproject.org On 27/12/2008 10:03, "James Harper" wrote: > The driver for the xen platform PCI device is a 'bus driver' under > windows, and enumerates child devices. When it enumerates a child > device, I can say 'and allocate me an interrupt line'. So these child devices don't have to have a physical manifestation in PCI space? And you can really request an arbitrary IRQ and then you are expected to plumb it through? That sounds weird, but actually quite helpful for us. Probably we'd implement it with an hvm_op to associate an event channel with an IO-APIC pin or a local APIC vector. If implemented as wire-OR into a set of IO-APIC pins, we'd need logic to deassert wires when event channels become not-pending, before the wire gets resampled by the PIC/IO-APIC. It's all easier if we can directly deliver to a LAPIC vector because those are inherently edge-triggered / message-based (which I think is what we really want; although it's more complicated if we need to be able to share a LAPIC vector among several event channels without 'losing' edges). -- Keir