linux/drivers/scsi
Don Brace 0338373634 hpsa: honor queue depth of physical devices
When using the ioaccel submission methods, requests destined for RAID volumes
are sometimes diverted to physical devices.  The OS has no or limited
knowledge of these physical devices, so it is up to the driver to avoid
pushing the device too hard.  It is better to honor the physical device queue
limit rather than making the device spew zillions of TASK SET FULL responses.

This is so that hpsa based devices support /sys/block/sdNN/device/queue_type
of simple, which lets the SCSI midlayer automatically adjust the queue_depth
based on TASK SET FULL and GOOD status.

Adjust the queue depth for a new device after it is created based on the
maximum queue depths of the physical devices that constitute the
device. This drops the maximum queue depth from .can_queue of 1024 to
something like 174 for single-drive RAID-0, 348 for two-drive RAID-1, etc.
It also adjusts for the ratio of data to parity drives.

Reviewed-by: Scott Teel <scott.teel@pmcs.com>
Signed-off-by: Webb Scales <webbnh@hp.com>
Signed-off-by: Don Brace <don.brace@pmcs.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
2015-02-02 09:57:40 -08:00
..
aacraid Merge remote-tracking branch 'scsi-queue/drivers-for-3.19' into for-linus 2014-12-08 07:42:25 -08:00
aic7xxx scsi: drop reason argument from ->change_queue_depth 2014-11-24 14:45:27 +01:00
aic94xx Merge remote-tracking branch 'scsi-queue/drivers-for-3.19' into for-linus 2014-12-18 05:56:29 -08:00
arcmsr scsi: drop reason argument from ->change_queue_depth 2014-11-24 14:45:27 +01:00
arm ncr5380: Drop legacy scsi.h include 2014-11-20 09:11:10 +01:00
be2iscsi scsi: drop reason argument from ->change_queue_depth 2014-11-24 14:45:27 +01:00
bfa scsi: drop reason argument from ->change_queue_depth 2014-11-24 14:45:27 +01:00
bnx2fc Merge remote-tracking branch 'scsi-queue/drivers-for-3.19' into for-linus 2014-12-18 05:56:29 -08:00
bnx2i scsi: drop reason argument from ->change_queue_depth 2014-11-24 14:45:27 +01:00
csiostor Merge remote-tracking branch 'scsi-queue/drivers-for-3.19' into for-linus 2014-12-18 05:56:29 -08:00
cxgbi libcxgbi: fix freeing skb prematurely 2014-12-12 11:22:30 -05:00
device_handler scsi: handle more device handler setup/teardown in common code 2014-11-12 11:19:36 +01:00
dpt
esas2r esas2r: Correct typos of "validate" in a comment 2014-12-04 09:58:33 +01:00
fcoe Merge remote-tracking branch 'scsi-queue/drivers-for-3.19' into for-linus 2014-12-18 05:56:29 -08:00
fnic fnic: IOMMU Fault occurs when IO and abort IO is out of order 2014-12-30 13:31:45 +01:00
ibmvscsi ibmvfc: remove unused tag variable 2014-12-04 09:58:33 +01:00
isci Merge remote-tracking branch 'scsi-queue/drivers-for-3.19' into for-linus 2014-12-18 05:56:29 -08:00
libfc scsi: drop reason argument from ->change_queue_depth 2014-11-24 14:45:27 +01:00
libsas Merge remote-tracking branch 'scsi-queue/drivers-for-3.19' into for-linus 2014-12-18 05:56:29 -08:00
lpfc lpfc: correct device removal deadlock after link bounce 2015-01-09 15:44:24 +01:00
megaraid megaraid_sas: driver version update 2015-01-09 15:44:38 +01:00
mpt2sas mpt2sas: Bump driver version to 20.100.00.00 2015-01-13 16:27:29 +01:00
mpt3sas mpt2sas, mpt3sas: set cpu affinity for each MSIX vectors 2015-01-13 16:27:28 +01:00
mvsas Merge remote-tracking branch 'scsi-queue/drivers-for-3.19' into for-linus 2014-12-18 05:56:29 -08:00
osd scsi: remove scsi_driver owner field 2014-11-24 20:01:28 +01:00
pcmcia treewide: Fix typo in printk 2014-08-26 09:35:54 +02:00
pm8001 Merge remote-tracking branch 'scsi-queue/drivers-for-3.19' into for-linus 2014-12-18 05:56:29 -08:00
qla2xxx qla2xxx: fix busy wait regression 2015-01-05 18:15:08 +01:00
qla4xxx scsi: drop reason argument from ->change_queue_depth 2014-11-24 14:45:27 +01:00
sym53c8xx_2 scsi: drop reason argument from ->change_queue_depth 2014-11-24 14:45:27 +01:00
ufs ufs-qcom: add support for Qualcomm Technologies Inc platforms 2015-01-20 19:43:26 +01:00
.gitignore
3w-9xxx.c 3w-9xxx.c: Cleaning up missing null-terminate in conjunction with strncpy 2015-01-09 15:44:21 +01:00
3w-9xxx.h
3w-sas.c scsi: drop reason argument from ->change_queue_depth 2014-11-24 14:45:27 +01:00
3w-sas.h
3w-xxxx.c scsi: drop reason argument from ->change_queue_depth 2014-11-24 14:45:27 +01:00
3w-xxxx.h 3w-xxxx: fix mis-aligned struct accesses 2014-07-25 17:16:56 -04:00
53c700_d.h_shipped
53c700.c scsi: remove scsi_set_tag_type 2014-12-04 09:57:13 +01:00
53c700.h
53c700.scr
a100u2w.c scsi: use pci_zalloc_consistent 2014-08-08 15:57:29 -07:00
a100u2w.h
a2091.c zorro: ZTWO_VADDR() should return "void __iomem *" 2013-11-26 11:09:07 +01:00
a2091.h
a3000.c scsi: drop owner assignment from platform_drivers 2014-10-20 16:21:33 +02:00
a3000.h
a4000t.c scsi: drop owner assignment from platform_drivers 2014-10-20 16:21:33 +02:00
advansys.c scsi: remove MSG_*_TAG defines 2014-12-04 09:58:33 +01:00
aha152x.c aha152x: debug output update and whitespace cleanup 2014-11-12 11:15:57 +01:00
aha152x.h
aha1542.c
aha1542.h
aha1740.c scsi: correct return values for .eh_abort_handler implementations 2014-11-12 11:16:08 +01:00
aha1740.h
am53c974.c tmscsim: replace by am53c974 driver 2014-11-24 16:13:18 +01:00
atari_NCR5380.c atari_NCR5380: Fix "transfered" typo 2014-11-20 09:11:21 +01:00
atari_scsi.c atari_NCR5380: Move static co-routine variables to host data 2014-11-20 09:11:20 +01:00
atp870u.c SCSI: remove unnecessary pci_set_drvdata() 2013-10-14 15:26:04 +02:00
atp870u.h
BusLogic.c scsi: drop reason argument from ->change_queue_depth 2014-11-24 14:45:27 +01:00
BusLogic.h [SCSI] BusLogic: Port driver to 64-bit. 2013-06-26 18:32:47 -07:00
bvme6000_scsi.c scsi: drop owner assignment from platform_drivers 2014-10-20 16:21:33 +02:00
ch.c ch: remove debug noise in ch_do_scsi 2015-01-20 19:43:23 +01:00
constants.c scsi: Conditionally compile in constants.c 2015-01-09 15:44:31 +01:00
dc395x.c scsi: use 64-bit value for 'max_luns' 2014-07-17 22:07:38 +02:00
dc395x.h
dmx3191d.c dmx3191d: Use NO_IRQ 2014-11-20 09:11:11 +01:00
dpt_i2o.c scsi: drop reason argument from ->change_queue_depth 2014-11-24 14:45:27 +01:00
dpti.h scsi: use 64-bit LUNs 2014-07-17 22:07:37 +02:00
dtc.c ncr5380: Drop legacy scsi.h include 2014-11-20 09:11:10 +01:00
dtc.h ncr5380: Remove *_RELEASE macros 2014-11-20 09:11:10 +01:00
eata_generic.h
eata_pio.c [SCSI] remove deprecated IRQF_DISABLED from SCSI 2014-03-19 15:04:44 -07:00
eata_pio.h
eata.c scsi: drop reason argument from ->change_queue_depth 2014-11-24 14:45:27 +01:00
esp_scsi.c esp_scsi: remove check for ESP_MAX_TAGS 2015-01-09 15:44:23 +01:00
esp_scsi.h esp_scsi: correctly detect am53c974 2014-11-24 16:13:16 +01:00
fdomain.c Drivers: scsi: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
fdomain.h
FlashPoint.c [SCSI] BusLogic: Port driver to 64-bit. 2013-06-26 18:32:47 -07:00
g_NCR5380_mmio.c
g_NCR5380.c ncr5380: Drop legacy scsi.h include 2014-11-20 09:11:10 +01:00
g_NCR5380.h ncr5380: Remove *_RELEASE macros 2014-11-20 09:11:10 +01:00
gdth_ioctl.h
gdth_proc.c gdth: switch to ->show_info() 2013-04-09 14:13:16 -04:00
gdth_proc.h gdth: switch to ->show_info() 2013-04-09 14:13:16 -04:00
gdth.c scsi: rename SERVICE_ACTION_IN to SERVICE_ACTION_IN_16 2014-11-24 20:01:40 +01:00
gdth.h gdth: switch to ->show_info() 2013-04-09 14:13:16 -04:00
gvp11.c zorro: ZTWO_VADDR() should return "void __iomem *" 2013-11-26 11:09:07 +01:00
gvp11.h
hosts.c scsi: remove ordered_tag host template field 2014-11-12 11:19:41 +01:00
hpsa_cmd.h hpsa: honor queue depth of physical devices 2015-02-02 09:57:40 -08:00
hpsa.c hpsa: honor queue depth of physical devices 2015-02-02 09:57:40 -08:00
hpsa.h hpsa: honor queue depth of physical devices 2015-02-02 09:57:40 -08:00
hptiop.c scsi: drop reason argument from ->change_queue_depth 2014-11-24 14:45:27 +01:00
hptiop.h
imm.c imm: switch to ->show_info() 2013-04-09 14:13:16 -04:00
imm.h
in2000.c scsi: use 64-bit LUNs 2014-07-17 22:07:37 +02:00
in2000.h
initio.c [SCSI] remove deprecated IRQF_DISABLED from SCSI 2014-03-19 15:04:44 -07:00
initio.h
ipr.c ipr: set scsi_level correctly for disk arrays 2014-12-15 13:34:29 +01:00
ipr.h ipr: add support for async scanning to speed up boot 2014-12-15 13:34:28 +01:00
ips.c scsi: drop reason argument from ->change_queue_depth 2014-11-24 14:45:27 +01:00
ips.h ips: switch to ->show_info() 2013-04-09 14:13:27 -04:00
iscsi_boot_sysfs.c [SCSI] iscsi_boot_sysfs: Fix a memory leak in iscsi_boot_destroy_kset() 2014-03-15 10:19:19 -07:00
iscsi_tcp.c scsi: drop reason argument from ->change_queue_depth 2014-11-24 14:45:27 +01:00
iscsi_tcp.h net: Fix use after free by removing length arg from sk_data_ready callbacks. 2014-04-11 16:15:36 -04:00
jazz_esp.c scsi: drop owner assignment from platform_drivers 2014-10-20 16:21:33 +02:00
Kconfig scsi: Conditionally compile in constants.c 2015-01-09 15:44:31 +01:00
lasi700.c Drivers: scsi: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
libiscsi_tcp.c [SCSI] libiscsi: Reduce locking contention in fast path 2014-03-15 10:19:18 -07:00
libiscsi.c scsi: drop reason argument from ->change_queue_depth 2014-11-24 14:45:27 +01:00
mac53c94.c
mac53c94.h
mac_esp.c scsi: drop owner assignment from platform_drivers 2014-10-20 16:21:33 +02:00
mac_scsi.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2014-12-12 10:08:06 -08:00
Makefile scsi: Conditionally compile in constants.c 2015-01-09 15:44:31 +01:00
megaraid.c scsi: correct return values for .eh_abort_handler implementations 2014-11-12 11:16:08 +01:00
megaraid.h [SCSI] megaraid: simplify internal command handling 2014-03-27 08:26:31 -07:00
mesh.c scsi: use pci_zalloc_consistent 2014-08-08 15:57:29 -07:00
mesh.h
mvme16x_scsi.c scsi: drop owner assignment from platform_drivers 2014-10-20 16:21:33 +02:00
mvme147.c switch wd33c93 to ->show_info() 2013-04-09 14:13:15 -04:00
mvme147.h
mvumi.c PCI: Remove DEFINE_PCI_DEVICE_TABLE macro use 2014-08-12 12:15:14 -06:00
mvumi.h [SCSI] mvumi: Use PCI_VENDOR_ID_MARVELL_EXT for 0x1b4b 2013-04-15 14:30:44 -06:00
ncr53c8xx.c scsi: drop reason argument from ->change_queue_depth 2014-11-24 14:45:27 +01:00
ncr53c8xx.h scsi: Remove CONFIG_SCSI_MULTI_LUN 2014-07-17 22:07:35 +02:00
NCR53c406a.c NCR53c406a: don't call free_dma() by default 2014-07-25 17:16:56 -04:00
NCR5380.c ncr5380: Drop legacy scsi.h include 2014-11-20 09:11:10 +01:00
NCR5380.h atari_NCR5380: Move static co-routine variables to host data 2014-11-20 09:11:20 +01:00
NCR_D700.c Drivers: scsi: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
NCR_D700.h
NCR_Q720.c Drivers: scsi: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
NCR_Q720.h
nsp32_debug.c
nsp32_io.h
nsp32.c SCSI for-linus on 20141007 2014-10-07 21:29:18 -04:00
nsp32.h
osst_detect.h
osst_options.h
osst.c scsi: remove scsi_driver owner field 2014-11-24 20:01:28 +01:00
osst.h
pas16.c ncr5380: Drop legacy scsi.h include 2014-11-20 09:11:10 +01:00
pas16.h ncr5380: Remove *_RELEASE macros 2014-11-20 09:11:10 +01:00
pmcraid.c scsi: remove ->change_queue_type method 2014-12-04 09:55:45 +01:00
pmcraid.h
ppa.c ppa: switch to ->show_info() 2013-04-09 14:13:17 -04:00
ppa.h
ps3rom.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2014-12-12 10:08:06 -08:00
qla1280.c scsi: drop reason argument from ->change_queue_depth 2014-11-24 14:45:27 +01:00
qla1280.h
qlogicfas408.c
qlogicfas408.h
qlogicfas.c qlogicfas: don't call free_dma() 2014-07-25 17:16:55 -04:00
qlogicpti.c scsi: drop owner assignment from platform_drivers 2014-10-20 16:21:33 +02:00
qlogicpti.h
raid_class.c
script_asm.pl
scsi_debug.c scsi_debug: Implement WRITE BUFFER command 2015-01-09 15:44:21 +01:00
scsi_devinfo.c scsi: blacklist RSOC for Microsoft iSCSI target devices 2014-12-15 10:41:23 +01:00
scsi_error.c scsi: do not display kernel pointer in message logs 2015-01-09 15:44:33 +01:00
scsi_ioctl.c scsi: return EAGAIN when resetting a device under EH 2014-11-12 11:16:12 +01:00
scsi_lib_dma.c
scsi_lib.c scsi: ->queue_rq can't sleep 2015-01-09 15:43:01 +01:00
scsi_logging.c scsi: always use format argumets for dev_printk 2015-01-20 19:43:22 +01:00
scsi_logging.h scsi: simplify scsi_log_(send|completion) 2014-11-12 11:16:05 +01:00
scsi_module.c
scsi_netlink.c net: Use netlink_ns_capable to verify the permisions of netlink messages 2014-04-24 13:44:54 -04:00
scsi_pm.c SCSI / PM: Replace CONFIG_PM_RUNTIME with CONFIG_PM 2014-12-15 15:11:06 +01:00
scsi_priv.h SCSI / PM: Replace CONFIG_PM_RUNTIME with CONFIG_PM 2014-12-15 15:11:06 +01:00
scsi_proc.c scsi: use 64-bit LUNs 2014-07-17 22:07:37 +02:00
scsi_sas_internal.h
scsi_scan.c scsi: retry report-luns when reported LU count requres more memory 2015-01-09 15:44:16 +01:00
scsi_sysctl.c scsi: convert use of typedef ctl_table to struct ctl_table 2014-06-06 16:08:16 -07:00
scsi_sysfs.c scsi: remove ->change_queue_type method 2014-12-04 09:55:45 +01:00
scsi_trace.c scsi: rename SERVICE_ACTION_IN to SERVICE_ACTION_IN_16 2014-11-24 20:01:40 +01:00
scsi_transport_api.h
scsi_transport_fc.c scsi: add defines for new FC port speeds. 2014-07-25 17:16:54 -04:00
scsi_transport_iscsi.c iscsi class: Fix freeing of skb in get host error path 2014-08-04 13:16:14 +02:00
scsi_transport_sas.c scsi: use 64-bit LUNs 2014-07-17 22:07:37 +02:00
scsi_transport_spi.c scsi: remove MSG_*_TAG defines 2014-12-04 09:58:33 +01:00
scsi_transport_srp.c Main set of InfiniBand/RDMA updates for 3.17 merge window: 2014-08-14 11:09:05 -06:00
scsi_typedefs.h
scsi.c scsi: Do not display buffer pointers in scsi_log_send() 2015-01-09 15:44:32 +01:00
scsi.h
scsicam.c scsi: PC partition tables are little endian 2014-11-12 11:15:54 +01:00
sd_dif.c sd: Honor block layer integrity handling flags 2014-09-30 15:17:35 -06:00
sd.c scsi: use per-cpu buffer for formatting sense 2015-01-09 15:44:30 +01:00
sd.h scsi: introduce sdev_prefix_printk() 2014-11-12 11:15:57 +01:00
ses.c ses: Add power_status to SES device slot 2015-01-09 15:44:19 +01:00
sg.c scsi: split scsi_nonblockable_ioctl 2014-11-12 11:16:11 +01:00
sgiwd93.c scsi: drop owner assignment from platform_drivers 2014-10-20 16:21:33 +02:00
sim710.c Drivers: scsi: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
sni_53c710.c scsi: drop owner assignment from platform_drivers 2014-10-20 16:21:33 +02:00
sr_ioctl.c sr: reduce debug noise in sr_do_ioctl 2015-01-20 19:43:24 +01:00
sr_vendor.c scsi: Implement sr_printk() 2014-07-17 22:07:39 +02:00
sr.c scsi: remove scsi_driver owner field 2014-11-24 20:01:28 +01:00
sr.h scsi: introduce sdev_prefix_printk() 2014-11-12 11:15:57 +01:00
st_options.h
st.c scsi: remove scsi_driver owner field 2014-11-24 20:01:28 +01:00
st.h
stex.c scsi: don't force tagged_supported in drivers 2014-11-12 11:19:44 +01:00
storvsc_drv.c storvsc: force SPC-3 compliance on win8 and win8 r2 hosts 2015-01-09 15:44:27 +01:00
sun3_scsi_vme.c scsi/NCR5380: merge sun3_scsi_vme.c into sun3_scsi.c 2014-05-28 12:16:28 +02:00
sun3_scsi.c atari_NCR5380: Remove RESET_RUN_DONE macro 2014-11-20 09:11:20 +01:00
sun3_scsi.h sun3_scsi: Move macro definitions 2014-11-20 09:11:15 +01:00
sun3x_esp.c scsi: drop owner assignment from platform_drivers 2014-10-20 16:21:33 +02:00
sun_esp.c scsi: drop owner assignment from platform_drivers 2014-10-20 16:21:33 +02:00
sym53c416.c Drivers: scsi: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
sym53c416.h
t128.c ncr5380: Drop legacy scsi.h include 2014-11-20 09:11:10 +01:00
t128.h ncr5380: Remove *_RELEASE macros 2014-11-20 09:11:10 +01:00
u14-34f.c scsi: drop reason argument from ->change_queue_depth 2014-11-24 14:45:27 +01:00
ultrastor.c
ultrastor.h
virtio_scsi.c virtio: virtio 1.0 support, misc patches 2014-12-11 12:20:31 -08:00
vmw_pvscsi.c vmw_pscsi: simplify ->change_queue_depth 2014-11-24 14:45:28 +01:00
vmw_pvscsi.h PCI: Move PCI_VENDOR_ID_VMWARE to pci_ids.h 2014-09-24 11:52:09 -06:00
wd33c93.c scsi: use 64-bit LUNs 2014-07-17 22:07:37 +02:00
wd33c93.h switch wd33c93 to ->show_info() 2013-04-09 14:13:15 -04:00
wd719x.c wd719x: remove dma_cache_sync call 2014-11-27 16:40:16 +01:00
wd719x.h wd719x: Introduce Western Digital WD7193/7197/7296 PCI SCSI card driver 2014-11-25 15:42:54 +01:00
wd7000.c scsi: drop reason argument from ->change_queue_depth 2014-11-24 14:45:27 +01:00
xen-scsifront.c xen: remove DEFINE_XENBUS_DRIVER() macro 2014-10-06 10:27:57 +01:00
zalon.c Drivers: scsi: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
zorro7xx.c zorro: ZTWO_VADDR() should return "void __iomem *" 2013-11-26 11:09:07 +01:00