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

[Xen-devel] WinPv driver get bad write performance

To: "xen >> \"xen-devel@xxxxxxxxxxxxxxxxxxx\"" <xen-devel@xxxxxxxxxxxxxxxxxxx>
Subject: [Xen-devel] WinPv driver get bad write performance
From: Wayne Gong <wayne.gong@xxxxxxxxxx>
Date: Tue, 07 Apr 2009 11:48:05 +0800
Delivery-date: Mon, 06 Apr 2009 20:48:50 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
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>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Thunderbird 2.0.0.21 (Windows/20090302)
Hi

My windows pv driver's read performance is acceptable but write performance is bad and worse then QEMU mode.
I use DebugView to get some debug information from drivers. I found something strange but interesting. I use IoMeter to test a 2GB disk which formatted as NTFS file system. Set VCPU = 1, Memory = 600MB. All test are done on the same test machine. Here are some log brief, I just print one command work process for an example, the other commands in log files show the same result.

Windows Server 2008 X64, 32K, 100% sequence Read
-Log No.-    - Time-         - Log-
00003944    1.28332651    XenVBD:    Srb FFFFFA8000E82F90, startLBA 1912736, blockCount 64, offset 0  
00003945    1.28334212    XenVBD:    Device FFFFFA8000A67008, Notify event channel 5  
00003946    1.28373182    XenPCI:     send software interrupt to event channel 5  
00003947    1.28375566    XenVBD:    ISR StartLBA:1912736, blockCount:64
[Response time = 1.28373182 - 1.28334212 = 0.0003897 ]

Windows Server 2008 X64, 32K, 100% sequence Write
-Log No.-    - Time-         - Log-
00002718    5.05471611    XenVBD:    Srb FFFFFA8000E82F90, startLBA 1892896, blockCount 64, offset 0  
00002719    5.05474854    XenVBD:    Device FFFFFA8000A67008, Notify event channel 5  
00002720    5.05863619    XenPCI:     send software interrupt to event channel 5  
00002721    5.05865955    XenVBD:    ISR StartLBA:1892896, blockCount:64
[Response time = 5.05863619 - 5.05474854 = 0.00388765 ]

For each log segment,
line 1 means xenvbd driver get an SCSI command from system upper driver (such as file system),
line 2 means xenvbd driver finish SCSI command analyzing, fill it to a ring buffer and notify the event channel to tell backend driver that a command is ok and need backend to deal with.
line 3 means xenpci driver get an event channel notify from backend and send a software interrupt to tell xenvbd driver that a command is finished.
line 4 means xenvbd driver get a interrupt from xenpci driver. ISR is called to complete a SCSI command.

What I found is X64 32K Write command takes a long time to get response from backend. Response time from set notify to event channel to get event notify from event channel is longer then Read command (about 10 times). I know a hard disk drive will take more time to deal with a Write command then Read command, but I don't think it will be 10 times. So any one can tell me why backend driver need so much time to deal with a 32K Write command from a X64 windows PV HVM? Can I set some parameter to get some log from backend or something else?

I use xen 3.1 series.

Any feedback is appreciate.

thanks
wayne
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-devel] WinPv driver get bad write performance, Wayne Gong <=