diff options
author | Rishi Mehta <rmehta@vmware.com> | 2014-03-11 16:51:33 -0400 |
---|---|---|
committer | James Bottomley <JBottomley@Parallels.com> | 2014-03-19 18:04:45 -0400 |
commit | 2a815b5ac374d670f347f2d3a39db07105715398 (patch) | |
tree | 8be49db5de5327ac0271efbe3fee7cb6560a2b2f /drivers/scsi/vmw_pvscsi.h | |
parent | a2713cceb3a8efef8b86bec06f10689c95ddbc8c (diff) |
[SCSI] vmw_pvscsi: Add support for I/O requests coalescing.
This change allows pvscsi driver to coalesce I/O requests
before issuing them. The number of I/O's coalesced can be
dynamically configured based on the workload.
Signed-off-by: Rishi Mehta <rmehta@vmware.com>
Signed-off-by: Arvind Kumar <arvindkumar@vmware.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Diffstat (limited to 'drivers/scsi/vmw_pvscsi.h')
-rw-r--r-- | drivers/scsi/vmw_pvscsi.h | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/drivers/scsi/vmw_pvscsi.h b/drivers/scsi/vmw_pvscsi.h index a6437758384f..15a9ac68a50b 100644 --- a/drivers/scsi/vmw_pvscsi.h +++ b/drivers/scsi/vmw_pvscsi.h | |||
@@ -26,7 +26,7 @@ | |||
26 | 26 | ||
27 | #include <linux/types.h> | 27 | #include <linux/types.h> |
28 | 28 | ||
29 | #define PVSCSI_DRIVER_VERSION_STRING "1.0.3.0-k" | 29 | #define PVSCSI_DRIVER_VERSION_STRING "1.0.4.0-k" |
30 | 30 | ||
31 | #define PVSCSI_MAX_NUM_SG_ENTRIES_PER_SEGMENT 128 | 31 | #define PVSCSI_MAX_NUM_SG_ENTRIES_PER_SEGMENT 128 |
32 | 32 | ||
@@ -117,8 +117,9 @@ enum PVSCSICommands { | |||
117 | PVSCSI_CMD_CONFIG = 7, | 117 | PVSCSI_CMD_CONFIG = 7, |
118 | PVSCSI_CMD_SETUP_MSG_RING = 8, | 118 | PVSCSI_CMD_SETUP_MSG_RING = 8, |
119 | PVSCSI_CMD_DEVICE_UNPLUG = 9, | 119 | PVSCSI_CMD_DEVICE_UNPLUG = 9, |
120 | PVSCSI_CMD_SETUP_REQCALLTHRESHOLD = 10, | ||
120 | 121 | ||
121 | PVSCSI_CMD_LAST = 10 /* has to be last */ | 122 | PVSCSI_CMD_LAST = 11 /* has to be last */ |
122 | }; | 123 | }; |
123 | 124 | ||
124 | /* | 125 | /* |
@@ -141,6 +142,14 @@ struct PVSCSICmdDescConfigCmd { | |||
141 | u32 _pad; | 142 | u32 _pad; |
142 | } __packed; | 143 | } __packed; |
143 | 144 | ||
145 | /* | ||
146 | * Command descriptor for PVSCSI_CMD_SETUP_REQCALLTHRESHOLD -- | ||
147 | */ | ||
148 | |||
149 | struct PVSCSICmdDescSetupReqCall { | ||
150 | u32 enable; | ||
151 | } __packed; | ||
152 | |||
144 | enum PVSCSIConfigPageType { | 153 | enum PVSCSIConfigPageType { |
145 | PVSCSI_CONFIG_PAGE_CONTROLLER = 0x1958, | 154 | PVSCSI_CONFIG_PAGE_CONTROLLER = 0x1958, |
146 | PVSCSI_CONFIG_PAGE_PHY = 0x1959, | 155 | PVSCSI_CONFIG_PAGE_PHY = 0x1959, |
@@ -261,7 +270,9 @@ struct PVSCSIRingsState { | |||
261 | u32 cmpConsIdx; | 270 | u32 cmpConsIdx; |
262 | u32 cmpNumEntriesLog2; | 271 | u32 cmpNumEntriesLog2; |
263 | 272 | ||
264 | u8 _pad[104]; | 273 | u32 reqCallThreshold; |
274 | |||
275 | u8 _pad[100]; | ||
265 | 276 | ||
266 | u32 msgProdIdx; | 277 | u32 msgProdIdx; |
267 | u32 msgConsIdx; | 278 | u32 msgConsIdx; |