blob: d62457628eea1a5601804db9d2afaeced6c64fe7 [file] [log] [blame]
.TH SG_RESET "8" "July 2009" "sg3_utils\-1.28" SG3_UTILS
.SH NAME
sg_reset \- sends SCSI device, target, bus or host reset; or checks reset state
.SH SYNOPSIS
.B sg_reset
[\fI\-b\fR] [\fI\-d\fR] [\fI\-h\fR] [\fI\-t\fR] [\fI\-V\fR]
\fIDEVICE\fR
.SH DESCRIPTION
.\" Add any additional description here
.PP
The sg_reset utility with no options (just a \fIDEVICE\fR) reports on
the reset state (e.g. if a reset is underway) of \fIDEVICE\fR. When given
a \fI\-d\fR, \fI\-t\fR, \fI\-b\fR or \fI\-h\fR option it requests a device,
target, bus or host reset respectively.
.PP
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. \fI\-d\fR) option. This should removed the ambiguity of
whether "device" meant LU or target that we have had in the past.
.PP
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
permissions.
.PP
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 2.4.19.
.SH OPTIONS
.TP
\fB\-b\fR
attempt a SCSI bus reset. This would normally be tried if the
device reset (i.e. option \fI\-d\fR) was not successful.
.TP
\fB\-d\fR
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 \fIDEVICE\fR.
.TP
\fB\-h\fR
attempt a host adapter reset. This would normally be tried if both
device reset (i.e. option \fI\-d\fR) and bus reset (i.e. option \fI\-b\fR)
were not successful.
.TP
\fB\-t\fR
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 \fIDEVICE\fR.
.TP
\fB\-V\fR
prints the version string then exits.
.SH NOTES
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.
.PP
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 \fI\-t\fR) 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 \fIDEVICE\fR. Note that a "host reset"
and a "bus reset" may cause collateral damage.
.PP
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.
.PP
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 \fI\-t\fR option to it.
.SH AUTHORS
Written by Douglas Gilbert.
.SH COPYRIGHT
Copyright \(co 1999\-2009 Douglas Gilbert
.br
This software is distributed under the GPL version 2. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.