Jens Axboe
9937a5e2f3
scsi: remove performance regression due to async queue run
...
Commit c21e6beb removed our queue request_fn re-enter
protection, and defaulted to always running the queues from
kblockd to be safe. This was a known potential slow down,
but should be safe.
Unfortunately this is causing big performance regressions for
some, so we need to improve this logic. Looking into the details
of the re-enter, the real issue is on requeue of requests.
Requeue of requests upon seeing a BUSY condition from the device
ends up re-running the queue, causing traces like this:
scsi_request_fn()
scsi_dispatch_cmd()
scsi_queue_insert()
__scsi_queue_insert()
scsi_run_queue()
scsi_request_fn()
...
potentially causing the issue we want to avoid. So special
case the requeue re-run of the queue, but improve it to offload
the entire run of local queue and starved queue from a single
workqueue callback. This is a lot better than potentially
kicking off a workqueue run for each device seen.
This also fixes the issue of the local device going into recursion,
since the above mentioned commit never moved that queue run out
of line.
Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
2011-05-17 11:04:44 +02:00
..
fc
Fix common misspellings
2011-03-31 11:26:23 -03:00
fc_encode.h
[SCSI] libfc: introduce __fc_fill_fc_hdr that accepts fc_hdr as an argument
2011-02-28 18:32:33 -06:00
fc_frame.h
[SCSI] libfc: add fc_frame_sid() and fc_frame_did() functions
2010-07-28 09:05:59 -05:00
iscsi_if.h
Fix common misspellings
2011-03-31 11:26:23 -03:00
iscsi_proto.h
[SCSI] libiscsi: Check TMF state before sending PDU
2009-12-04 12:01:36 -06:00
Kbuild
[SCSI] Unexport scsi/scsi.h from headers_install
2010-05-02 11:45:12 -04:00
libfc.h
Fix common misspellings
2011-03-31 11:26:23 -03:00
libfcoe.h
[SCSI] libfcoe: Move FCOE_MTU definition from fcoe.h to libfcoe.h
2011-02-28 18:33:12 -06:00
libiscsi.h
[SCSI] cxgbi: convert to use iscsi_conn_get_addr_param
2011-02-24 12:41:15 -05:00
libiscsi_tcp.h
Fix common misspellings
2011-03-31 11:26:23 -03:00
libsas.h
[SCSI] libsas: fix definition of wideport, include local sas address
2010-12-21 12:23:53 -06:00
libsrp.h
libsrp: fix compile failure
2009-12-30 12:23:27 -08:00
osd_attributes.h
[SCSI] libosd: OSD2r05: Attribute definitions
2009-06-10 08:54:07 -05:00
osd_initiator.h
Fix common misspellings
2011-03-31 11:26:23 -03:00
osd_protocol.h
[SCSI] libosd: Support for scatter gather write/read commands
2010-10-26 10:42:34 -05:00
osd_sec.h
[SCSI] libosd: OSDv1 Headers
2009-03-12 12:58:06 -05:00
osd_sense.h
[SCSI] libosd: osd_sense: OSD_CFO_PERMISSIONS
2009-12-04 12:01:44 -06:00
osd_types.h
[SCSI] libosd: Support for scatter gather write/read commands
2010-10-26 10:42:34 -05:00
sas.h
sas_ata.h
libsas: convert to libata new error handler
2011-03-02 02:36:45 -05:00
scsi.h
Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6
2011-03-17 17:54:40 -07:00
scsi_bsg_fc.h
[SCSI] fc-transport: Use packed modifier for fc_bsg_request structure.
2010-01-17 12:36:33 -06:00
scsi_cmnd.h
[SCSI] Deprecate SCSI_PROT_*_CONVERT operations
2009-10-02 09:46:25 -05:00
scsi_dbg.h
scsi_device.h
scsi: remove performance regression due to async queue run
2011-05-17 11:04:44 +02:00
scsi_devinfo.h
scsi_dh.h
[SCSI] scsi_dh: Change the scsidh_activate interface to be asynchronous
2009-12-04 12:00:46 -06:00
scsi_driver.h
sd, sr: fix Driver 'sd' needs updating message
2009-06-21 12:01:27 -05:00
scsi_eh.h
scsi_host.h
Fix common misspellings
2011-03-31 11:26:23 -03:00
scsi_ioctl.h
[PATCH] don't mess with file in scsi_nonblockable_ioctl()
2008-10-21 07:47:28 -04:00
scsi_netlink.h
scsi: use __uX types for headers exported to user space
2010-08-11 08:59:01 -07:00
scsi_netlink_fc.h
scsi_scan.h
PM/Hibernate: Wait for SCSI devices scan to complete during resume
2009-04-13 11:37:07 -07:00
scsi_tcq.h
block: remove spurious uses of REQ_HARDBARRIER
2010-09-10 12:35:36 +02:00
scsi_tgt.h
scsi_tgt_if.h
scsi_transport.h
scsi_transport_fc.h
Fix common misspellings
2011-03-31 11:26:23 -03:00
scsi_transport_iscsi.h
[SCSI] iscsi class: add callout to get iscsi_endpoint values
2011-02-24 12:41:12 -05:00
scsi_transport_sas.h
[SCSI] scsi_transport_sas: add support for transport layer retries (TLR)
2010-02-08 17:15:19 -06:00
scsi_transport_spi.h
[SCSI] aic79xx: make driver respect nvram for IU and QAS settings
2009-06-15 10:09:35 -05:00
scsi_transport_srp.h
scsicam.h
sg.h
sysctl extern cleanup: sg
2010-03-12 15:53:10 -08:00
srp.h
IB/srp: Implement SRP_CRED_REQ and SRP_AER_REQ
2010-10-22 22:19:10 -07:00