SG_SENDDIAG

Section: SG3_UTILS (8)
Updated: November 2003
 

NAME

sg_senddiag - performs a SCSI SEND DIAGNOSTIC command  

SYNOPSIS

sg_senddiag [-doff] [-e] [-h] [-l] [-pf] [-s=<self_test_code>] [-t] [-uoff] [-V] [-?] <sg_device>  

DESCRIPTION

This utility sends a SEND DIAGNOSTIC SCSI command to the given device. In the case of '-l' option it then sends a RECEIVE DIAGNOSTIC SCSI command to fetch the response (i.e. the page numbers of supported diagnostic pages). This utility is mainly used to make the device do self tests.

-doff
set the Device Offline (DevOfl) bit (default is clear). Only significant when '-t' option is set for the default self test. In this sense the 'Device' is a target (with all contained logical units potentially impacted).
-e
outputs the expected extended self test duration. The duration is given in seconds (and minutes in parentheses). This figure is obtained from mode page 0xa (control page).
-h
outputs response from RECEIVE DIAGNOSTIC is hex rather than decode it.
-l
lists the names of all diagnostic pages supported by this device. The request is sent via a SEND DIAGNOSTIC command and the response is fetched by a RECEIVE DIAGNOSTIC command.
-pf
set Page Format (PF) bit. By default it is clear (i.e. 0).
-s=<self_test_code>
the default value is 0 which is inactive. A value of 1 selects a background short self test; 2 selects a background extended self test; 5 selects a foreground short self test; 6 selects a foreground extended test. A value of 4 will abort a (background) self test that is in progress. This option is mutually exclusive with default self test (i.e. '-t').
-t
sets the _default_ Self Test (SelfTest) bit. By default this is clear (0). The '-s=<num>' option should not be active together with this option. Both the '-doff' and/or '-uoff' options can be used with this option.
-uoff
set the Unit Offline (DevOfl) bit (default is clear). Only significant when '-t' option is set for the default self test. In this sense the 'Unit' is a logical units on a target.
-V
print out version string
-?
output usage message. Ignore all other parameters.

All devices should support the default self test. The 'short' self test codes should complete in 2 minutes or less. The 'extended' self test codes' maximum duration is vendor specific (e.g. a little over 10 minutes with my disks). The foreground self test codes wait until they are completed while the background self test codes return immediately. The results of both foreground and background self test codes are placed in the 'self test results' log page (see sg_logs). The SCSI command timeout for this utility is set to 60 minutes to allow for slow foreground extended self tests.

If the given device is a disk then no file systems residing on that disk should be mounted during a foreground self test. The reason is that other SCSI commands may become queued behind the foreground self test and timeout.

In the 2.4 series of Linux kernels the given device must be a SCSI generic (sg) device. In the 2.6 series block devices (e.g. disks and SCSI DVDs) can also be specified. For example 'sg_senddiag -t /dev/sda' will work in the 2.6 series kernels.  

AUTHOR

Written by Doug Gilbert  

REPORTING BUGS

Report bugs to <dgilbert@interlog.com>.  

COPYRIGHT

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

SEE ALSO

smartmontools(see net), sg_logs(sg3_utils)


 

Index

NAME
SYNOPSIS
DESCRIPTION
AUTHOR
REPORTING BUGS
COPYRIGHT
SEE ALSO
blog comments powered by Disqus