WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

RE: [Xen-devel] Multiple IRQ's in HVM for Windows

To: "Keir Fraser" <keir.fraser@xxxxxxxxxxxxx>, <xen-devel@xxxxxxxxxxxxxxxxxxx>
Subject: RE: [Xen-devel] Multiple IRQ's in HVM for Windows
From: "James Harper" <james.harper@xxxxxxxxxxxxxxxx>
Date: Sat, 27 Dec 2008 21:03:17 +1100
Cc:
Delivery-date: Sat, 27 Dec 2008 02:03:46 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <C57BAC8F.20947%keir.fraser@xxxxxxxxxxxxx>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
References: <AEC6C66638C05B468B556EA548C1A77D015500EE@trantor> <C57BAC8F.20947%keir.fraser@xxxxxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
Thread-index: AclnCjPkeAYvm5WbTaqM+PmGGNFiHQAIdYQ3AAU6BeAAATbLsQAADYFAAADLT9kALf9OEAABLL7gAAAL4JAAAN6snAAABoKQ
Thread-topic: [Xen-devel] Multiple IRQ's in HVM for Windows
> On 27/12/2008 09:35, "James Harper" <james.harper@xxxxxxxxxxxxxxxx>
wrote:
> 
> > I'm not sure if I understand the question. Under my drivers I just
do:
> >
> > hvm_set_parameter(HVM_PARAM_CALLBACK_IRQ, irq_number);
> >
> > where irq_number is what Windows assigns the platform PCI device,
and is
> > normally 28 when the HAL is APIC, otherwise it is 5, assuming no
qemu
> > network adapters or passed through PCI devices.
> >
> > I think there is another way of setting the IRQ using the PCI
address,
> > but that doesn't appear to be required here.
> 
> So where will irq_number come from when every event channel needs one?
> 

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'. During past
experimentation I did this with the criteria 'allocate me an interrupt
line somewhere between 16 and 31', and then I would call that interrupt
via a software interrupt mechanism (asm {int 0xXX} ), so I know that the
allocation and setup side of things work. What I don't know is if
Windows is programming the APIC correctly to match that physical IRQ
number with the vector... the 'int 0xXX' instruction just calls the
vector.

With enough devices, event channels are going to end up having to share
interrupts, but the number of event channels would be around 15 before
this would be required I think (windows would never allocate me an IRQ >
31), which I don't think is an unreasonable limitation.

James

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel