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] [PATCH] Change spec of callback IRQ for PV-on-HVM onIA64

To: <Doi.Tsunehisa@xxxxxxxxxxxxxx>
Subject: RE: [Xen-devel] [PATCH] Change spec of callback IRQ for PV-on-HVM onIA64
From: "Tian, Kevin" <kevin.tian@xxxxxxxxx>
Date: Tue, 21 Nov 2006 15:53:58 +0800
Cc: xen-devel <xen-devel@xxxxxxxxxxxxxxxxxxx>, Alex Williamson <alex.williamson@xxxxxx>
Delivery-date: Mon, 20 Nov 2006 23:54:12 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
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/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
Thread-index: AccNQF9NOq6/v3JDTw+Jq8CudTIZUwAABPDQ
Thread-topic: [Xen-devel] [PATCH] Change spec of callback IRQ for PV-on-HVM onIA64
>From: Doi.Tsunehisa@xxxxxxxxxxxxxx
>Sent: 2006年11月21日 15:40
>> Maybe I'm missing something and you can help me understand. :-)
>> Whatever the value is mangled in pdev->irq, you should always
>> keep following two instances same:
>>      if ((ret = request_irq(pdev->irq, evtchn_interrupt, SA_SHIRQ,...
>> and
>>      if ((ret = set_callback_irq(pdev->irq)))
>
>  In x86-linux, two instances are same. But in IA64-linux, previous one
>is a external interrupt vector for xen-platform interruption. Although
>latter one is a hardware IRQ id. Both values are not same in IA64-linux.

The callback value is the one pending to vIRR, which should be same
as the one that platform-pci driver binds to. I'm still not sure the exact 
difference here. It should be arch-independent. You have to draw 
agreement between two sides.

>
>> Before your patch, say pdev->irq is 0x27 (ISA irq 9), platform-pci
>> driver binds handler to 0x27 and xen will inject by callback_irq 0x27.
>> However in your patch, request_irq is still using pdev->irq (0x27)
>> while set_callback_irq instead wants (0x9). In this case, how can you
>> still make things working when two sides don't match...
>
>  With the modification of hypervisor side, the callback_irq(it's hardware
>IRQ) becomes to be converted to external interrupt vector with a
>emulator
>of IOSAPIC.
>

So you are saying:

Callback_irq (0x9) ----> isa_irq_to_vector(0x27) ----> pending to 0x27 
bit of IRRs -----> xen injects external interrupt to hvm -----> hvm 
ia64_handle_irq reads IVR -----> do_IRQ (0x27) ----> evtchn_interrupt

If this is the case, today's sequence is:
Callback_irq (0x27) ----> pending to 0x27 bit of IRRs -----> xen 
Injects external interrupt to hvm -----> hvm ia64_handle_irq reads 
IVR -----> do_IRQ (0x27) ----> evtchn_interrupt

Then I still can't see exact issue you want to solve. :-)

Thanks,
Kevin

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