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-ia64-devel

RE: [Xen-ia64-devel] IRQ management

To: "Tristan Gingold" <Tristan.Gingold@xxxxxxxx>, <xen-ia64-devel@xxxxxxxxxxxxxxxxxxx>
Subject: RE: [Xen-ia64-devel] IRQ management
From: "Tian, Kevin" <kevin.tian@xxxxxxxxx>
Date: Tue, 25 Oct 2005 13:23:19 +0800
Delivery-date: Tue, 25 Oct 2005 05:20:59 +0000
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-ia64-devel-request@lists.xensource.com?subject=help>
List-id: Discussion of the ia64 port of Xen <xen-ia64-devel.lists.xensource.com>
List-post: <mailto:xen-ia64-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-ia64-devel>, <mailto:xen-ia64-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-ia64-devel>, <mailto:xen-ia64-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-ia64-devel-bounces@xxxxxxxxxxxxxxxxxxx
Thread-index: AcXYoHm1TqthJ3NhQyOOAXvr2mS8PgAfnZ1Q
Thread-topic: [Xen-ia64-devel] IRQ management
>From: Tristan Gingold
>Sent: 2005年10月24日 22:43
>
>Hi,
>
>Recently I looked a little bit on how IRQs are managed.
>Correct me if I am wrong but on xen-ia64, only LSAPIC is virtualized.  IOSAPIC
>is not and devices interrupt are fully managed by domain0.
>On xen-x86, IRQs are fully virtualized by xen.

Yes, only LSAPIC is virtualized for para xen0 and xenU , but there's IOSAPIC 
device model for VTI domain. Previously IOSAPIC model is emulated within qemu, 
and recently our Intel engineers are moving the logic into hypervisor with big 
performance gain observed. Once they get the patch into xen-unstable (I believe 
soon), we will port it for VTI domain too.

Below is current status about why missing IOSAPIC can work now for xen-ia64:

        - For para dom0, all the physical devices including IOAPIC are owned by 
dom0 (driver domain is the exception). Even for xen-x86, that's the same fact. 
On x86, there is a callback handler within domain as the main entry point for 
any coming events (virq/pirq/pure_event). Hypervisor always resumes to that 
callback for exception injection and that callback then searches internal data 
to decide whether go to do_IRQ for pirq or event handler for pure inter-domain 
events. In this case, IRQs are fully virtualized and have to be bound with 
evtchn. On current ia64, there's no callback provided, and so a hack is used to 
bind all pure events to a hardcode percpu irq (Need to fix this bad) with 
physical device interrupts still delivered to interrupt vector of guest IVT 
table.

        - For para domU, there's no ACPI table thus no IOSAPIC device available 
on ia64 now. All current existing devices are provided by frontend/backend 
model which are all driven by pure event channels. In this case, all these 
communications are done by hardcode percpu irq without passing original linux 
ioapic sub-system. IOSAPIC issue is skipped. For x86, two new interrupt 
controller types are provided to handle physical irq and virtual irq which can 
be considered as alternative to IOSAPIC which don't exist for ia64 now. 

        There'll be issue with current model on ia64 like guest IPI or physical 
devices are owned by domU. We may need to add same logic as x86 in the future.


Thanks,
Kevin
>
>Since they are not virtualized on xen-ia64, the serial console input doesn't
>work, and we can't use the xenkeys.
>
>Are IRQs planned to be virtualized ?
>
>Tristan.
>
>
>_______________________________________________
>Xen-ia64-devel mailing list
>Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
>http://lists.xensource.com/xen-ia64-devel

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

<Prev in Thread] Current Thread [Next in Thread>