Hi
, SCSI miniport performance issue again.
My SCSI miniport driver has some performance issue especially small
write with 1 outstanding IO. Read performance isn’t very good but better
then write performance. I do the test with IoMeter, 4KB, 100% Sequential
for physical disk (no volume mount on it). Write performance is about
1MBPS but read performance is about 10MBPS on the same test case and
configuration. If I mount a volume on that disk, write performance is
still slower then read performance but it’s an acceptable distance.
What I have done,
1, Turn on TaggedQueuing and MultipleRequestPerLu on DriverEntry and
check in FindAdapter routine.
2, Set CommandQueue in Inquiry.
3, In ModeSense of MODE_PAGE_CACHING, set ReadDisableCache to 0, set
WriteCacheEnable to 1.
4. In StartIo routine, call ScsiPortNotification(NextLuRequest,…) when
there is no untagged SRB on presents (to fit for WHQL test).
I have google and found that lots of developers want to increase the
command queue depth for scsi miniport driver. I also check it in my
driver. If I set outstanding IO count to 16 or more in IoMeter, it
really can improve performance. So first of all I want to get some help
for why write performance is so slower then read performance for a
physical disk in IoMeter. After that, I will try to figure out how to
let my driver deal with more SRB at a time to improve performance.
BTW, I am developing windows para-virtual driver for Xen. My scsi
miniport driver is a ‘virtual’ driver.
Thanks
Wayne