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-devel][RFC]degradation on IPF due to hypercall set irq

To: "Xu, Anthony" <anthony.xu@xxxxxxxxx>, "Keir Fraser" <keir@xxxxxxxxxxxxx>
Subject: RE: [Xen-devel][RFC]degradation on IPF due to hypercall set irq
From: "Xu, Anthony" <anthony.xu@xxxxxxxxx>
Date: Fri, 24 Nov 2006 15:08:23 +0800
Cc: xen-devel@xxxxxxxxxxxxxxxxxxx, xen-ia64-devel <xen-ia64-devel@xxxxxxxxxxxxxxxxxxx>
Delivery-date: Thu, 23 Nov 2006 23:08:34 -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: AccN5wYmUmir46SdT8a+ptVHeNZ8fgAHbs2mAACOJaAAASp7iwAAG0VmAAB2zNAAAmxzrgAAEGDgAAAZWmIAAC5KoAAAk0fTAAD34HAAAGv3kgBSjAIgAAqAtLA=
Thread-topic: [Xen-devel][RFC]degradation on IPF due to hypercall set irq
Keir,

This patch is for comments, and it is based on IPF, it may not apply to IA32 
side.

This patch delivers interrupt and IO finish in the same hypercall 
xc_hvm_set_irq_and_wakeup_cpu,
This eliminate all unnecessary hypercalls.
In the meantime, I add a mechanism for IDE DMA thread to wakeup qemu main 
block(select) to
Deliver IDE DMA interrupt.

Yes all this can improve KB performance greatly,
But KB is still incurring 2%~3% degradation compared to shared PIC irq line.

I guest the reason as following,

In shared PIC irq line method,
IDE DMA thread doesn't wake up Qemu thread, after it has set irq line,
Select is only back when there is IO operation or other interrupt like 
keyborad, mouse.
This is not likely to delay the IDE interrupt deliverring, because every time 
xen returns to guest OS,
It will sync share irq line, and IDE interrupt can be delivered without dom0 
waking up hvm domain.

There is no xc_evtchn_notify called due to IDE DMA interrupt deliver.


But In currently hypercall method,
There are many hypercalls called due to IDE DMA interrupt deliver.

So there are still 2%~3% performance degradation.


What's your opinion?


Thanks,
Anthony




Xu, Anthony write on 2006年11月24日 10:00:
> Keir Fraser write on 2006年11月22日 18:28:
>> On 22/11/06 10:23, "Xu, Anthony" <anthony.xu@xxxxxxxxx> wrote:
>> 
>> Since the threads run independently there seems little choice but for
>> each to be able to flush. If the IDE DMA support had been properly
>> integrated into the qemu select() event loop this would not be an
>> issue.
> 
> Hi keir,
> 
> I'm trying to use multi hypercall to resolve this issue.
> But I found it is difficult to use multi hypercall in qemu.
> Because a hypercall have different argument in qemu, libxc and dom0
> kernel. 
> 
> For example,
> In qemu,
> xc_evtchn_notify(xce_handle, ioreq_local_port[send_vcpu]);
> In libxc
> ioctl(xce_handle, IOCTL_EVTCHN_NOTIFY, &notify);
> In dom0 kernel
> HYPERVISOR_event_channel_op(EVTCHNOP_send, &send);
> 
> If we want to use multi hypercall in qemu, we need to get the
> interface information 
> of dom0 kernel. We may need to add several more hypercall.
> 
> I propose to change xc_hvm_set_irq_level functionality to deliver
> interrupt and wakeup cpu at the same time.
> For example,
>  xc_hvm_set_irq_and_wakeup_cpu(int xc_handle, domid_t dom, int irq,
> int level, int cpu) This hypercall will deliver interrupt irq and
> wake up cpu. 
> 
> What's your opinion?
> 
> 
> Thanks,
> Anthony
> 
> 
> 
> 
> 
> 
> 
>> 
>>  -- Keir
> 
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@xxxxxxxxxxxxxxxxxxx
> http://lists.xensource.com/xen-devel

Attachment: qemu_interrupt_deliver200611241336.patch
Description: qemu_interrupt_deliver200611241336.patch

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