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/
Home Products Support Community News


[Xen-devel] [PATCH][RFC] Change edge-interrupt handling in Xen

To: "Keir Fraser" <keir.fraser@xxxxxxxxxxxxx>, "Jiang, Yunhong" <yunhong.jiang@xxxxxxxxx>, "Tian, Kevin" <kevin.tian@xxxxxxxxx>
Subject: [Xen-devel] [PATCH][RFC] Change edge-interrupt handling in Xen
From: "Shan, Haitao" <haitao.shan@xxxxxxxxx>
Date: Thu, 10 Apr 2008 17:45:48 +0800
Cc: xen-devel <xen-devel@xxxxxxxxxxxxxxxxxxx>
Delivery-date: Thu, 10 Apr 2008 02:48:26 -0700
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: Acia76hNUGSt2lAOQ5OWBT2/eag8Fw==
Thread-topic: [PATCH][RFC] Change edge-interrupt handling in Xen

Hi, Keir,

These two patch will demonstrate our thoughts of how edge-interrupt can be handled in Xen.

Following the dicussion with MSI in recent mail threads, edge-interrupt can be handled like this:
1> ACK (write EOI) for the first interrupt.
2> If the second comes and the first is still in service, mask the interrupt.
3> unmask the interupt when all work is done.
While this is clear in native linux kernel, it is not so in Xen. Because Xen does not require the guest use EOI hypercall for edge interrupt and hence does not know when guest has finished handling to edge interrupt, we have problems in how to judge 2> and 3>.

We solve the problem in this way:
Move pirq_needs_eoi from dom0's owe memory to share page.
Xen will chage the bit in pirq_needs_eoi dynamically.
Xen uses pending status to judge whether the first one is handled.
On receiving EOI hypercall from guest, unmask the interrupt.

Do you think this approach is viable?

The two patches are for xen and kernel respectively.

<<handle_edge_irq_kernel.patch>> <<handle_edge_ird.patch>>

Best Regards
Haitao Shan

Attachment: handle_edge_irq_kernel.patch
Description: handle_edge_irq_kernel.patch

Attachment: handle_edge_ird.patch
Description: handle_edge_ird.patch

Xen-devel mailing list
<Prev in Thread] Current Thread [Next in Thread>