87 lines
3.7 KiB
Groff
87 lines
3.7 KiB
Groff
.TH SG_TEST_RWBUF "8" "January 2018" "sg3_utils\-1.43" SG3_UTILS
|
|
.SH NAME
|
|
sg_test_rwbuf \- test a SCSI host adapter by issuing dummy writes
|
|
and reads
|
|
.SH SYNOPSIS
|
|
.B sg_test_rwbuf
|
|
[\fI\-\-addrd=AR\fR] [\fI\-\-addwr=AW\fR] [\fI\-\-help\fR]
|
|
[\fI\-\-quick\fR] \fI\-\-size=SZ\fR [\fI\-\-times=NUM\fR] [\fI\-\-verbose\fR]
|
|
[\fI\-\-version\fR] \fIDEVICE\fR
|
|
.PP
|
|
or an older deprecated format
|
|
.B sg_test_rwbuf
|
|
\fIDEVICE\fR \fISZ\fR [\fIAW\fR] [\fIAR\fR]
|
|
.SH DESCRIPTION
|
|
.\" Add any additional description here
|
|
.PP
|
|
sg_test_rwbuf writes and reads back \fISZ\fR bytes to the internal buffer of
|
|
\fIDEVICE\fR (e.g. /dev/sda or /dev/sg0). A pseudo random pattern is
|
|
written to the data buffer on the device then read back. If the same pattern
|
|
is found 'Success' is reported. If they do not match (checksums unequal) then
|
|
this is reported and up to 24 bytes from the first point of mismatch are
|
|
reported; the first line shows what was written and the second line shows
|
|
what was received. For testing purposes, you can ask it to write \fIAW\fR or
|
|
read \fIAR\fR additional bytes.
|
|
.SH OPTIONS
|
|
Arguments to long options are mandatory for short options as well.
|
|
.TP
|
|
\fB\-r\fR, \fB\-\-addrd\fR=\fIAR\fR
|
|
Read an additional \fIAR\fR bytes (more than indicated by \fISZ\fR) from the
|
|
data buffer. Checksum is performed over the first \fISZ\fR bytes.
|
|
.TP
|
|
\fB\-w\fR, \fB\-\-addwr\fR=\fIAW\fR
|
|
Write an additional \fIAW\fR bytes (more than indicated by \fISZ\fR) of
|
|
zeros into the data buffer. Checksum is generated over the first \fISZ\fR
|
|
bytes.
|
|
.TP
|
|
\fB\-h\fR, \fB\-\-help\fR
|
|
Print out a usage message the exit.
|
|
.TP
|
|
\fB\-q\fR, \fB\-\-quick\fR
|
|
Perform a READ BUFFER descriptor command to find out the available data
|
|
buffer length and offset, print them out then exit (without testing
|
|
with write/read sequences).
|
|
.TP
|
|
\fB\-s\fR, \fB\-\-size\fR=\fISZ\fR
|
|
where \fISZ\fR is the size of buffer in bytes to be written then read and
|
|
checked. This number needs to be less than or equal to the size of the
|
|
device's data buffer which can be seen from the \fI\-\-quick\fR option.
|
|
Either this option or the \fI\-\-quick\fR option should be given.
|
|
.TP
|
|
\fB\-t\fR, \fB\-\-times\fR=\fINUM\fR
|
|
where \fINUM\fR is the number of times to repeat the write/read to buffer
|
|
test. Default value is 1 .
|
|
.TP
|
|
\fB\-v\fR, \fB\-\-verbose\fR
|
|
increase verbosity of output.
|
|
.TP
|
|
\fB\-V\fR, \fB\-\-version\fR
|
|
print version number (and data of last change) then exit.
|
|
.SH NOTES
|
|
The microcode in a SCSI device is _not_ modified by doing a WRITE BUFFER
|
|
command with its mode set to "data" (0x2) as done by this utility. Therefore
|
|
this utility is safe in that respect. [Mode values 0x4, 0x5, 0x6 and 0x7
|
|
are the dangerous ones :\-)]
|
|
.PP
|
|
\fBWARNING\fR: If you access the device at the same time (e.g. because it's
|
|
a hard disk with a mounted file system on it) the device's buffer may be
|
|
used by the device itself for other data at the same time, and overwriting
|
|
it may or may not cause data corruption! \fBHOWEVER\fR the SPC\-3 draft
|
|
standard does state in its WRITE BUFFER command: "This command shall not
|
|
alter any medium of the logical unit when data mode ... is specified". This
|
|
implies that it _is_ safe to use this utility with devices that have mounted
|
|
file systems on them.
|
|
Following this theme further, a disk with active mounted file systems may
|
|
cause the data read back to be different (due to caching activity) to what
|
|
was written and hence a checksum error.
|
|
.SH EXIT STATUS
|
|
The exit status of sg_test_rwbuf is 0 when it is successful. Otherwise see
|
|
the sg3_utils(8) man page.
|
|
.SH AUTHORS
|
|
Written by D. Gilbert and K. Garloff
|
|
.SH COPYRIGHT
|
|
Copyright \(co 2000\-2018 Douglas Gilbert, Kurt Garloff
|
|
.br
|
|
This software is distributed under the GPL version 2. There is NO
|
|
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|