Man Linux: Main Page and Category List


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


       sg_reset [-b] [-d] [-h] [-t] [-V] DEVICE


       The sg_reset utility with no options (just a  DEVICE)  reports  on  the
       reset  state  (e.g. if a reset is underway) of DEVICE. When given a -d,
       -t, -b or -h option it requests a device, target,  bus  or  host  reset

       The  ability to reset a SCSI target (often called a "hard reset" at the
       transport level) was added in linux kernel 2.6.27 . Low  level  drivers
       that  support  target  reset  hopefully  reset a logical unit only when
       given the device reset  (i.e.  -d)  option.  This  should  removed  the
       ambiguity  of  whether  "device" meant LU or target that we have had in
       the past.

       In the linux kernel 2.6 series this utility can be  called  on  sd,  sr
       (cd/dvd),   st  or  sg  device  nodes;  if  the  user  has  appropriate

       In the linux kernel 2.4 series support for this utility first  appeared
       in  lk  2.4.19  and  could  only  be called on sg device nodes. Various
       vendors made this capability available in their  kernels  prior  to  lk


       -b     attempt  a  SCSI  bus reset. This would normally be tried if the
              device reset (i.e. option -d) was not successful.

       -d     attempt a SCSI device reset. If the device seems stuck, this  is
              the  first  reset  that  should be tried. This assumes the linux
              scsi mid level error handler is not already in  the  process  of
              resetting DEVICE.

       -h     attempt  a  host  adapter reset. This would normally be tried if
              both device reset (i.e. option -d) and bus  reset  (i.e.  option
              -b) were not successful.

       -t     attempt  a  SCSI  target  reset. This assumes the linux scsi mid
              level error handler is not already in the process  of  resetting
              the target that contains the given DEVICE.

       -V     prints the version string then exits.


       The  error recovery code within the linux kernel when faced with a SCSI
       command timing out and no response from the device (LU), first 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. Users of this utility should check whether such
       a recovery is  already  underway  before  trying  to  reset  with  this
       utility.  The  "device,target,bus,host" order is also recommended (i.e.
       first start with the smallest hammer). The above  is  a  generalization
       and  exact  details  will  vary  depending on the transport and the low
       level driver concerned.

       SAM-4 defines 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. A LU reset and an I_T nexus  reset  can  be
       requested  via  task  management  function (and support for LU reset is
       mandatory). In Linux the SCSI subsystem leaves it up to the  low  level
       drivers  as to whether a "device reset" is only for the addressed LU or
       all the LUs in the device that contains the addressed LU (i.e. a target
       reset). The additional of the target reset (i.e. option -t) should give
       more control in this area.  The "bus reset" is a  transport  reset  and
       may  be  a  dummy operation, depending on the transport. 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 reset" may
       cause collateral damage.

       This utility does not allow individual SCSI commands (or tasks as  they
       are  called in SAM-4) 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.
       Several  transports  still  support  that  function and many associated
       linux low level drivers map the -t option to it.


       Written by Douglas Gilbert.


       Copyright © 1999-2009 Douglas Gilbert
       This software is distributed under the  GPL  version  2.  There  is  NO
       warranty;  not  even  for  MERCHANTABILITY  or FITNESS FOR A PARTICULAR