summaryrefslogtreecommitdiffstats
path: root/Documentation/scsi/scsi_eh.txt
diff options
context:
space:
mode:
authorIngo Molnar2016-07-07 10:35:28 +0200
committerIngo Molnar2016-07-07 10:35:28 +0200
commit4b4b20852d1009c5e8bc357b22353b62e3a241c7 (patch)
tree1026418471fe10c5b9f2fdff8a6b49bf070938fc /Documentation/scsi/scsi_eh.txt
parenttick/broadcast-hrtimer: Set name of the ce_broadcast_hrtimer (diff)
parenttimers: Implement optimization for same expiry time in mod_timer() (diff)
downloadkernel-qcow2-linux-4b4b20852d1009c5e8bc357b22353b62e3a241c7.tar.gz
kernel-qcow2-linux-4b4b20852d1009c5e8bc357b22353b62e3a241c7.tar.xz
kernel-qcow2-linux-4b4b20852d1009c5e8bc357b22353b62e3a241c7.zip
Merge branch 'timers/fast-wheel' into timers/core
Diffstat (limited to 'Documentation/scsi/scsi_eh.txt')
-rw-r--r--Documentation/scsi/scsi_eh.txt8
1 files changed, 6 insertions, 2 deletions
diff --git a/Documentation/scsi/scsi_eh.txt b/Documentation/scsi/scsi_eh.txt
index 8638f61c8c9d..37eca00796ee 100644
--- a/Documentation/scsi/scsi_eh.txt
+++ b/Documentation/scsi/scsi_eh.txt
@@ -263,19 +263,23 @@ scmd->allowed.
3. scmd recovered
ACTION: scsi_eh_finish_cmd() is invoked to EH-finish scmd
- - shost->host_failed--
- clear scmd->eh_eflags
- scsi_setup_cmd_retry()
- move from local eh_work_q to local eh_done_q
LOCKING: none
+ CONCURRENCY: at most one thread per separate eh_work_q to
+ keep queue manipulation lockless
4. EH completes
ACTION: scsi_eh_flush_done_q() retries scmds or notifies upper
- layer of failure.
+ layer of failure. May be called concurrently but must have
+ a no more than one thread per separate eh_work_q to
+ manipulate the queue locklessly
- scmd is removed from eh_done_q and scmd->eh_entry is cleared
- if retry is necessary, scmd is requeued using
scsi_queue_insert()
- otherwise, scsi_finish_command() is invoked for scmd
+ - zero shost->host_failed
LOCKING: queue or finish function performs appropriate locking