mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-24 13:44:26 -04:00
| Filename | Latest commit message | Latest commit date |
|---|---|---|
This patch adds support for an alternate I/O path in the scsi midlayer which uses the blk-mq infrastructure instead of the legacy request code. Use of blk-mq is fully transparent to drivers, although for now a host template field is provided to opt out of blk-mq usage in case any unforseen incompatibilities arise. In general replacing the legacy request code with blk-mq is a simple and mostly mechanical transformation. The biggest exception is the new code that deals with the fact the I/O submissions in blk-mq must happen from process context, which slightly complicates the I/O completion handler. The second biggest differences is that blk-mq is build around the concept of preallocated requests that also include driver specific data, which in SCSI context means the scsi_cmnd structure. This completely avoids dynamic memory allocations for the fast path through I/O submission. Due the preallocated requests the MQ code path exclusively uses the host-wide shared tag allocator instead of a per-LUN one. This only affects drivers actually using the block layer provided tag allocator instead of their own. Unlike the old path blk-mq always provides a tag, although drivers don't have to use it. For now the blk-mq path is disable by defauly and must be enabled using the "use_blk_mq" module parameter. Once the remaining work in the block layer to make blk-mq more suitable for slow devices is complete I hope to make it the default and eventually even remove the old code path. Based on the earlier scsi-mq prototype by Nicholas Bellinger. Thanks to Bart Van Assche and Robert Elliot for testing, benchmarking and various sugestions and code contributions. Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com> Reviewed-by: Hannes Reinecke <hare@suse.de> Reviewed-by: Webb Scales <webbnh@hp.com> Acked-by: Jens Axboe <axboe@kernel.dk> Tested-by: Bart Van Assche <bvanassche@acm.org> Tested-by: Robert Elliott <elliott@hp.com> |
||
| .. | ||
| fc | ||
| fc_encode.h | ||
| fc_frame.h | ||
| fcoe_sysfs.h | ||
| iscsi_if.h | ||
| iscsi_proto.h | ||
| libfc.h | ||
| libfcoe.h | ||
| libiscsi.h | ||
| libiscsi_tcp.h | ||
| libsas.h | ||
| osd_attributes.h | ||
| osd_initiator.h | ||
| osd_ore.h | ||
| osd_protocol.h | ||
| osd_sec.h | ||
| osd_sense.h | ||
| osd_types.h | ||
| sas.h | ||
| sas_ata.h | ||
| scsi.h | ||
| scsi_bsg_iscsi.h | ||
| scsi_cmnd.h | ||
| scsi_dbg.h | ||
| scsi_device.h | ||
| scsi_devinfo.h | ||
| scsi_dh.h | ||
| scsi_driver.h | ||
| scsi_eh.h | ||
| scsi_host.h | ||
| scsi_ioctl.h | ||
| scsi_tcq.h | ||
| scsi_transport.h | ||
| scsi_transport_fc.h | ||
| scsi_transport_iscsi.h | ||
| scsi_transport_sas.h | ||
| scsi_transport_spi.h | ||
| scsi_transport_srp.h | ||
| scsicam.h | ||
| sg.h | ||
| srp.h | ||