[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[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
|