[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[win-pv-devel] [PATCH] Set per-disk queue depth



Windows apparently defaults to a queue depth of 20, which is a bit on the
small side. This patch sets the value to the maximum possible, which is
apparently 254 instead of the documented 255.

Signed-off-by: Paul Durrant <paul.durrant@xxxxxxxxxx>
---
 src/xenvbd/driver.h | 1 +
 src/xenvbd/pdo.c    | 6 ++++++
 2 files changed, 7 insertions(+)

diff --git a/src/xenvbd/driver.h b/src/xenvbd/driver.h
index 0bbf6cb..d59f053 100644
--- a/src/xenvbd/driver.h
+++ b/src/xenvbd/driver.h
@@ -46,6 +46,7 @@
 #define XENVBD_MAX_SEGMENTS_PER_SRB     (XENVBD_MAX_REQUESTS_PER_SRB * 
XENVBD_MAX_SEGMENTS_PER_REQUEST)
 #define XENVBD_MAX_TRANSFER_LENGTH      (XENVBD_MAX_SEGMENTS_PER_SRB * 
PAGE_SIZE)
 #define XENVBD_MAX_PHYSICAL_BREAKS      (XENVBD_MAX_SEGMENTS_PER_SRB - 1)
+#define XENVBD_MAX_QUEUE_DEPTH          (254)
 
 #define XENVBD_MIN_GRANT_REFS           (XENVBD_MAX_SEGMENTS_PER_SRB)
 
diff --git a/src/xenvbd/pdo.c b/src/xenvbd/pdo.c
index 587b2f2..b854afc 100644
--- a/src/xenvbd/pdo.c
+++ b/src/xenvbd/pdo.c
@@ -2197,6 +2197,12 @@ __PdoExecuteScsi(
         break;
 
     case SCSIOP_INQUIRY:
+        if (!StorPortSetDeviceQueueDepth(PdoGetFdo(Pdo),
+                                         0,
+                                         (UCHAR)PdoGetTargetId(Pdo),
+                                         0,
+                                         XENVBD_MAX_QUEUE_DEPTH))
+            Verbose("Target[%d] : Failed to set queue depth\n");
         PdoInquiry(PdoGetTargetId(Pdo), FrontendGetInquiry(Pdo->Frontend), 
Srb, Pdo->DeviceType);
         break;
     case SCSIOP_MODE_SENSE:
-- 
2.1.1


_______________________________________________
win-pv-devel mailing list
win-pv-devel@xxxxxxxxxxxxxxxxxxxx
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.