1SG_RESET(8)                        SG3_UTILS                       SG_RESET(8)
2
3
4

NAME

6       sg_reset  -  sends  SCSI  device,  target, bus or host reset; or checks
7       reset state
8

SYNOPSIS

10       sg_reset [--bus] [--device]  [--help]  [--host]  [--no-esc]  [--target]
11       [--verbose] [--version] DEVICE
12

DESCRIPTION

14       The  sg_reset  utility  with  no options (just a DEVICE) reports on the
15       reset state (e.g. if a reset is underway) of the DEVICE. When  given  a
16       --device,  --target,  --bus or --host option it requests a device, tar‐
17       get, bus or host reset respectively.
18
19       A device reset is applied to the Logical  Unit  (LU)  corresponding  to
20       DEVICE.  It  is  most likely implemented by a Low level Driver (LLD) in
21       Linux as a LOGICAL UNIT RESET task management function.
22
23       The ability to reset a SCSI target was added in Linux kernel 2.6.27 . A
24       LLD  may send Low level Drivers (LLDs) the I_T NEXUS RESET task manage‐
25       ment function. Alternatively it may use a transport mechanism to do the
26       same thing (e.g. a hard reset on the link containing a SAS target).
27
28       In  the Linux kernel 2.6 and 3 series this utility can be called on sd,
29       sr (cd/dvd), st or sg device nodes; if the user has appropriate permis‐
30       sions.
31
32       Users  of  this  utility  can check whether a reset recovery is already
33       underway before trying to send a new reset with this  utility.  Calling
34       this utility with no options, just the DEVICE, will do such a check.
35

OPTIONS

37       -b, --bus
38              attempt  a SCSI bus reset. A bus reset is a SCSI Parallel Inter‐
39              face (SPI) concept not found in modern transports. A recent  LLD
40              may  implement it as a series of resets on targets that might be
41              considered as siblings to the target on the DEVICE path.
42
43       -d, --device
44              attempt a SCSI device reset. This would typically involve  send‐
45              ing a LOGICAL UNIT RESET task management function to DEVICE.
46
47       -h, --help
48              print the usage message then exit.
49
50       -H, --host
51              attempt a host reset. The "host" in this context is often called
52              a Host Bus Adapter (HBA) and contains one or more  SCSI  initia‐
53              tors.
54
55       -N, --no-esc
56              without  this option, if a device reset (--device) fails then it
57              will escalate to a target reset. And if a target  reset  (--tar‐
58              get)  fails  then  it will escalate to a bus reset. And if a bus
59              reset (--bus) fails then it will escalate to a host reset.  With
60              this  option only the requested reset is attempted. An alternate
61              option name of --no-escalate is also accepted.
62
63       -t, --target
64              attempt a SCSI target reset. A SCSI target contains one or  more
65              LUs. This would typically involve sending a I_T NEXUS RESET task
66              management function to DEVICE There may be  a  transport  action
67              that  is  equivalent (e.g.  in SAS a hard reset on the link that
68              contains the target).
69
70       -v, --verbose
71              increase the degree of verbosity (debug messages).
72
73       -V, --version
74              prints the version string then exits.
75

NOTES

77       The error recovery code within the Linux kernel (SCSI  mid-level)  when
78       faced  with  a  SCSI command timing out and no response from the device
79       (LU) does the following. First it tries a device reset and if  that  is
80       not successful tries a target reset. If that is not successful it tries
81       a bus reset. If that is not successful  it  tries  a  host  reset.  The
82       "device,target,bus,host"  order  is the reset escalation that the --no-
83       esc option attempts to stop. In large storage configurations the  esca‐
84       lation may be (very) undesirable.
85
86       This  utility  calls  the  SG_SCSI_RESET  ioctl and as of lk 3.10.7 the
87       --no-esc option is not supported. Patches to implement this functional‐
88       ity may be accepted in lk 3.18 or 3.19 .
89
90       SAM-4  and  5 define a hard reset, a LOGICAL UNIT RESET and a I_T NEXUS
91       RESET. A hard reset is defined to be a power on condition, a  microcode
92       change  or  a  transport  reset event. LOGICAL UNIT RESET and I_T NEXUS
93       RESET can be requested via task management functions (and  support  for
94       LOGICAL UNIT RESET is mandatory). In Linux the SCSI subsystem leaves it
95       up to the LLDs as to exactly what type (if any) of reset is  performed.
96       The  "bus  reset" is SCSI Parallel Interface (SPI) concept that may not
97       map well to recent SCSI transports so it may be a  dummy  operation.  A
98       "host  reset" attempts to re-initialize the HBA that the request passes
99       through en route to the DEVICE. Note that a "host  reset"  and  a  "bus
100       reset" may cause collateral damage.
101
102       This  utility  does  not  allow individual SCSI commands to be aborted.
103       SAM-4 defines ABORT TASK and ABORT TASK SET task  management  functions
104       for that.
105
106       Prior  to  SAM-3 there was a TARGET RESET task management function. And
107       in SAM-4 I_T NEXUS RESET appeared  which  seems  closely  related:  the
108       "I_T" stands for Initiator-Target.
109
110       Transports  may  have  their  own types of resets not supported by this
111       utility.  For example SAS has a link reset in  which  both  ends  of  a
112       physical link (e.g.  between a SAS expander and a SAS tape drive) rene‐
113       gotiate their connection.
114
115       Prior to version 0.57 of  this  utility  the  command  line  had  short
116       options  only  (e.g. -d but not --device). Also -h invoked a host reset
117       while in the current version -h is equivalent to --help and both -H and
118       --host invoke a host reset. For backward compatibility define the envi‐
119       ronment variable SG3_UTILS_OLD_OPTS or SG_RESET_OLD_OPTS . In this case
120       -h  will  invoke  a host reset and the output will be verbose as it was
121       previously (equivalent to using the --verbose option now).   For  exam‐
122       ple:
123
124           SG_RESET_OLD_OPTS=1 sg_reset -h /dev/sg1
125       sg_reset: starting host reset
126       sg_reset: completed host reset
127

AUTHORS

129       Written by Douglas Gilbert.
130
132       Copyright © 1999-2014 Douglas Gilbert
133       This  software is distributed under the GPL version 2. There is NO war‐
134       ranty; not even for MERCHANTABILITY or FITNESS FOR  A  PARTICULAR  PUR‐
135       POSE.
136
137
138
139sg3_utils-1.40                   October 2014                      SG_RESET(8)
Impressum