aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/isci/host.h
diff options
context:
space:
mode:
authorDan Williams <dan.j.williams@intel.com>2011-06-17 17:18:39 -0400
committerDan Williams <dan.j.williams@intel.com>2011-07-03 07:04:51 -0400
commitdb0562509800a2d4cb5cb14a66413c30484f165c (patch)
treed05cc34b78a8f2a6b9024b8d45e5e8e50786ee64 /drivers/scsi/isci/host.h
parent38d8879baeb61b6946052739e7c03fa79b3a57f0 (diff)
isci: preallocate requests
the dma_pool interface is optimized for object_size << page_size which is not the case with isci_request objects and the dma_pool routines show up in the top of the profile. The old io_request_table which tracked whether tci slots were in-flight or not is replaced with an IREQ_ACTIVE flag per request. Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Diffstat (limited to 'drivers/scsi/isci/host.h')
-rw-r--r--drivers/scsi/isci/host.h11
1 files changed, 1 insertions, 10 deletions
diff --git a/drivers/scsi/isci/host.h b/drivers/scsi/isci/host.h
index d8164f5d7988..446fade19b3a 100644
--- a/drivers/scsi/isci/host.h
+++ b/drivers/scsi/isci/host.h
@@ -166,14 +166,6 @@ struct scic_sds_controller {
166 struct scic_sds_remote_device *device_table[SCI_MAX_REMOTE_DEVICES]; 166 struct scic_sds_remote_device *device_table[SCI_MAX_REMOTE_DEVICES];
167 167
168 /** 168 /**
169 * This field is the array of IO request objects that are currently active for
170 * this controller object. This table is used as a fast lookup of the io
171 * request object that need to handle completion queue notifications. The
172 * table is TCi based.
173 */
174 struct scic_sds_request *io_request_table[SCI_MAX_IO_REQUESTS];
175
176 /**
177 * This field is the free RNi data structure 169 * This field is the free RNi data structure
178 */ 170 */
179 struct scic_remote_node_table available_remote_nodes; 171 struct scic_remote_node_table available_remote_nodes;
@@ -298,7 +290,6 @@ struct isci_host {
298 union scic_oem_parameters oem_parameters; 290 union scic_oem_parameters oem_parameters;
299 291
300 int id; /* unique within a given pci device */ 292 int id; /* unique within a given pci device */
301 struct dma_pool *dma_pool;
302 struct isci_phy phys[SCI_MAX_PHYS]; 293 struct isci_phy phys[SCI_MAX_PHYS];
303 struct isci_port ports[SCI_MAX_PORTS + 1]; /* includes dummy port */ 294 struct isci_port ports[SCI_MAX_PORTS + 1]; /* includes dummy port */
304 struct sas_ha_struct sas_ha; 295 struct sas_ha_struct sas_ha;
@@ -315,7 +306,7 @@ struct isci_host {
315 struct list_head requests_to_complete; 306 struct list_head requests_to_complete;
316 struct list_head requests_to_errorback; 307 struct list_head requests_to_errorback;
317 spinlock_t scic_lock; 308 spinlock_t scic_lock;
318 309 struct isci_request *reqs[SCI_MAX_IO_REQUESTS];
319 struct isci_remote_device devices[SCI_MAX_REMOTE_DEVICES]; 310 struct isci_remote_device devices[SCI_MAX_REMOTE_DEVICES];
320}; 311};
321 312