dwww Home | Manual pages | Find package

SG_RESET(8)                        SG3_UTILS                       SG_RESET(8)

NAME
       sg_reset  - sends SCSI device, target, bus or host reset; or checks re-
       set state

SYNOPSIS
       sg_reset [--bus] [--device]  [--help]  [--host]  [--no-esc]  [--target]
       [--verbose] [--version] DEVICE

DESCRIPTION
       The sg_reset utility with no options (just a DEVICE) reports on the re-
       set  state  (e.g.  if  a reset is underway) of the DEVICE. When given a
       --device, --target, --bus or --host option it requests a  device,  tar-
       get, bus or host reset respectively.

       A device reset is applied to the Logical Unit (LU) corresponding to DE-
       VICE.  It  is  most  likely  implemented by a Low level Driver (LLD) in
       Linux as a LOGICAL UNIT RESET task management function.

       The ability to reset a SCSI target was added in Linux kernel 2.6.27 . A
       LLD may send Low level Drivers (LLDs) the I_T NEXUS RESET task  manage-
       ment function. Alternatively it may use a transport mechanism to do the
       same thing (e.g. a hard reset on the link containing a SAS target).

       In  the Linux kernel 2.6 and 3 series this utility can be called on sd,
       sr (cd/dvd), st or sg device nodes; if the user has appropriate permis-
       sions.

       Users of this utility can check whether a reset recovery is already un-
       derway before trying to send a new reset  with  this  utility.  Calling
       this utility with no options, just the DEVICE, will do such a check.

OPTIONS
       -b, --bus
              attempt  a SCSI bus reset. A bus reset is a SCSI Parallel Inter-
              face (SPI) concept not found in modern transports. A recent  LLD
              may  implement it as a series of resets on targets that might be
              considered as siblings to the target on the DEVICE path.

       -d, --device
              attempt a SCSI device reset. This would typically involve  send-
              ing a LOGICAL UNIT RESET task management function to DEVICE.

       -z, --help
              print the usage message then exit.

       -H, --host
              attempt a host reset. The "host" in this context is often called
              a  Host  Bus Adapter (HBA) and contains one or more SCSI initia-
              tors.

       -N, --no-esc
              without this option, if a device reset (--device) fails then  it
              will  escalate  to a target reset. And if a target reset (--tar-
              get) fails then it will escalate to a bus reset. And  if  a  bus
              reset  (--bus) fails then it will escalate to a host reset. With
              this option only the requested reset is attempted. An  alternate
              option name of --no-escalate is also accepted.

       --no-escalate
              The same as -N, --no-esc.

       -t, --target
              attempt  a SCSI target reset. A SCSI target contains one or more
              LUs. This would typically involve sending a I_T NEXUS RESET task
              management function to DEVICE There may be  a  transport  action
              that  is  equivalent (e.g.  in SAS a hard reset on the link that
              contains the target).

       -v, --verbose
              increase the degree of verbosity (debug messages).

       -V, --version
              prints the version string then exits.

NOTES
       The error recovery code within the Linux kernel (SCSI  mid-level)  when
       faced  with  a  SCSI command timing out and no response from the device
       (LU) does the following. First it tries a device reset and if  that  is
       not successful tries a target reset. If that is not successful it tries
       a  bus reset. If that is not successful it tries a host reset. The "de-
       vice,target,bus,host" order is the reset escalation that  the  --no-esc
       option attempts to stop. In large storage configurations the escalation
       may be (very) undesirable.

       This  utility  calls  the  SG_SCSI_RESET  ioctl and as of lk 3.10.7 the
       --no-esc option is not supported. Patches to implement this functional-
       ity may be accepted in lk 3.18 or 3.19 .

       SAM-4 and 5 define a hard reset, a LOGICAL UNIT RESET and a  I_T  NEXUS
       RESET.  A hard reset is defined to be a power on condition, a microcode
       change or a transport reset event. LOGICAL UNIT RESET and I_T NEXUS RE-
       SET can be requested via task management  functions  (and  support  for
       LOGICAL UNIT RESET is mandatory). In Linux the SCSI subsystem leaves it
       up  to the LLDs as to exactly what type (if any) of reset is performed.
       The "bus reset" is SCSI Parallel Interface (SPI) concept that  may  not
       map  well  to  recent SCSI transports so it may be a dummy operation. A
       "host reset" attempts to re-initialize the HBA that the request  passes
       through en route to the DEVICE. Note that a "host reset" and a "bus re-
       set" may cause collateral damage.

       This  utility  does  not  allow individual SCSI commands to be aborted.
       SAM-4 defines ABORT TASK and ABORT TASK SET task  management  functions
       for that.

       Prior  to  SAM-3 there was a TARGET RESET task management function. And
       in SAM-4 I_T NEXUS RESET appeared  which  seems  closely  related:  the
       "I_T" stands for Initiator-Target.

       Transports  may  have  their  own types of resets not supported by this
       utility.  For example SAS has a link reset in  which  both  ends  of  a
       physical link (e.g.  between a SAS expander and a SAS tape drive) rene-
       gotiate their connection.

       Prior  to  version  0.57 of this utility the command line had short op-
       tions only (e.g. -d but not --device). Also -h  invoked  a  host  reset
       while in the current version -h is equivalent to --help and both -H and
       --host invoke a host reset. For backward compatibility define the envi-
       ronment variable SG3_UTILS_OLD_OPTS or SG_RESET_OLD_OPTS . In this case
       -h  will  invoke  a host reset and the output will be verbose as it was
       previously (equivalent to using the --verbose option now).   For  exam-
       ple:

           SG_RESET_OLD_OPTS=1 sg_reset -h /dev/sg1
       sg_reset: starting host reset
       sg_reset: completed host reset

ENVIRONMENT VARIABLES
       Since    sg3_utils    version    1.23    the    environment   variables
       SG3_UTILS_OLD_OPTS or SG_RESET_OLD_OPTS can be given.  When  either  is
       present this utility will expect the older command line options as out-
       lined in the NOTES section.

AUTHORS
       Written by Douglas Gilbert.

COPYRIGHT
       Copyright © 1999-2017 Douglas Gilbert
       This  software is distributed under the GPL version 2. There is NO war-
       ranty; not even for MERCHANTABILITY or FITNESS FOR  A  PARTICULAR  PUR-
       POSE.

sg3_utils-1.43                   October 2017                      SG_RESET(8)

Generated by dwww version 1.16 on Tue Dec 16 17:13:52 CET 2025.