New EH command timeout handler
Get series with b4
b4 am [email protected]Versions newest first · linked by author and title
- v11 Latest5 patches 4 repliesIn review
- v105 patches 10 repliesSuperseded
- v94 patches 0 repliesSuperseded
Earlier versions · 8
| Version | Posted | Patches | Replies | Status |
|---|---|---|---|---|
| v8 | 3 patches | 8 replies | Superseded | |
| v7 | 4 patches | 2 replies | Superseded | |
| v6 | 3 patches | 9 replies | Superseded | |
| v5 | 9 patches | 10 replies | Superseded | |
| v4 | 9 patches | 2 replies | Superseded | |
| v3 | 9 patches | 9 replies | Superseded | |
| v2 | 9 patches | 20 replies | Superseded | |
| v1 | 4 patches | 13 replies | Superseded |
Changes to v2 from the cover letter
- Removed eh_entry initialisation
- Convert to per-command workqueue
Patches in v11 No applies recorded yet
| # | Subject and files | Size | Replies | Applied |
|---|---|---|---|---|
| 1/5 | scsi: Fix erratic device offline during EHdrivers/ drivers/ include/ | +30 | 0 replies | |
| 2/5 | scsi: improved eh timeout handlerdrivers/ drivers/ drivers/ +3 more | +167 | 4 replies | |
| 3/5 | scsi: Unlock accesses to eh_deadlinedrivers/ | +9 | 0 replies | |
| 4/5 | scsi: Set the minimum valid value of 'eh_deadline' as 0drivers/ drivers/ drivers/ | +58 | 0 replies | |
| 5/5 | scsi: Update documentationDocumentation/ Documentation/ drivers/ | +48 | 0 replies |
Reviews trailers per patch
No Reviewed-by, Acked-by or Tested-by trailers for v11 yet.
Cover letter [PATCHv11 0/5] New EH command timeout handler
Hi all,
this patchset implements a new SCSI EH command timeout handler which will be sending command aborts inline without actually engaging SCSI EH.
SCSI EH will only be invoked if command abort fails.
In addition the commands will be returned directly if the command abort succeeded, cutting down recovery times dramatically.
With the original SCSI EH I got:
# time dd if=/dev/zero of=/dev/dm-2 bs=4k count=4k oflag=direct 4096+0 records in 4096+0 records out 16777216 bytes (17 MB) copied, 142.652 s, 118 kB/s
real 2m22.657s
user 0m0.013s
sys 0m0.145s
With this patchset I got:
# time dd if=/dev/zero of=/dev/dm-2 bs=4k count=4k oflag=direct 4096+0 records in 4096+0 records out 16777216 bytes (17 MB) copied, 52.1579 s, 322 kB/s
real 0m52.163s
user 0m0.012s
sys 0m0.145s
Test was to disable RSCN on the target port, disable the target port, and then start the 'dd' command as indicated.
Changes to the original version:
- Use a private list in scsi_eh_abort_handler to avoid list starvation (pointed out by Joern Engel)
- Terminate command aborts when the first abort fails
- Do not attempt command aborts if the host is already in recovery or if the device is removed.
- Flush abort workqueue if the device is removed.
Changes to v2:
- Removed eh_entry initialisation
- Convert to per-command workqueue
Changes to v3:
- Use delayed_work
- Enable new eh timeout handler for virtio, SAS, and FC
- Modify logging messages to include scmd pointer
Changes to v4:
- Remove stubs when enabling new eh timeout handler for other drivers
Changes to v5:
- Enable new eh timeout handler per default
- Update documentation
Changes to v6:
- Include changes from James Bottomley for erratic device offline patch
- Rearrange patches
- Update SCSI midlayer documentation
Changes to v7:
- Merge obsolete patch
Changes to v8:
- Include fixes from hch
- Include patch from Ren Mingxin to set eh_deadline to '0'
Changes to v9:
- Unlock accesses to eh_deadline
Changes to v10:
- Use private workqueue with WQ_MEM_RECLAIM set
Hannes Reinecke (3):
scsi: improved eh timeout handler
scsi: Unlock accesses to eh_deadline
scsi: Update documentation
James Bottomley (1):
scsi: Fix erratic device offline during EH
Ren Mingxin (1):
scsi: Set the minimum valid value of 'eh_deadline' as 0
Documentation/scsi/scsi_eh.txt | 69 +++++----- Documentation/scsi/scsi_mid_low_api.txt | 9 +- drivers/scsi/hosts.c | 30 ++++- drivers/scsi/scsi.c | 9 +- drivers/scsi/scsi_error.c | 229 ++++++++++++++++++++++++-------- drivers/scsi/scsi_priv.h | 2 + drivers/scsi/scsi_sysfs.c | 36 +++-- drivers/scsi/sd.c | 26 ++-- include/scsi/scsi_cmnd.h | 1 + include/scsi/scsi_driver.h | 2 +- include/scsi/scsi_host.h | 10 ++ 11 files changed, 299 insertions(+), 124 deletions(-)
Signature · 1 line
1.7.12.4