diff options
author | Dan Williams <dan.j.williams@intel.com> | 2011-06-17 17:18:39 -0400 |
---|---|---|
committer | Dan Williams <dan.j.williams@intel.com> | 2011-07-03 07:04:51 -0400 |
commit | db0562509800a2d4cb5cb14a66413c30484f165c (patch) | |
tree | d05cc34b78a8f2a6b9024b8d45e5e8e50786ee64 /drivers/scsi/isci/host.h | |
parent | 38d8879baeb61b6946052739e7c03fa79b3a57f0 (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.h | 11 |
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 | ||