|   | 
      | 
  
  
      | 
      | 
  
 
     | 
    | 
  
  
     | 
    | 
  
  
    |   | 
      | 
  
  
    | 
         
xen-devel
[Xen-devel] WinPv driver get bad write performance
 
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 <=
  
 |  
  
 | 
    | 
  
  
    |   | 
    |