Access linux scsi logging level information
scsi_logging_level [--all=LEV] [--create] [--error=LEV] [--get] [--help] [--highlevel=LEV] [--hlcomplete=LEV] [--hlqueue=LEV] [--ioctl=LEV] [--llcomplete=LEV] [--llqueue=LEV] [--lowlevel=LEV] [--midlevel=LEV] [--mlcomplete=LEV] [--mlqueue=LEV] [--scan=LEV] [--set] [--timeout=LEV] [--version]
This bash shell script accesses the Linux SCSI subsystem logging level. The current values can be shown (e.g. with --get) or changed (e.g. with --set). Superuser permissions will typically be required to set the logging level.
One of these options: --create, --get or --set is required. Only one can be given.
Arguments to long options are mandatory for short options as well.
-a, --all=LEV
LEV is used for all SCSI_LOG fields.
-c, --create
Options are parsed and placed in internal fields that are displayed but no logging levels are changed within the Linux kernel.
-E, --error=LEV
LEV is placed in the SCSI_LOG_ERROR field.
-g, --get
Fetches the current SCSI logging levels from the Linux kernel and displays them.
-h, --help
print out the usage message then exit.
-H, --highlevel=LEV
LEV is placed in the SCSI_LOG_HLQUEUE and SCSI_LOG_HLCOMPLETE fields.
--hlcomplete=LEV
LEV is placed in the SCSI_LOG_HLCOMPLETE field.
--hlqueue=LEV
LEV is placed in the SCSI_LOG_HLQUEUE field.
-I, --ioctl=LEV
LEV is placed in the SCSI_LOG_IOCTL field.
--llcomplete=LEV
LEV is placed in the SCSI_LOG_LLCOMPLETE field.
--llqueue=LEV
LEV is placed in the SCSI_LOG_LLQUEUE field.
-L, --lowlevel=LEV
LEV is placed in the SCSI_LOG_LLQUEUE and SCSI_LOG_LLCOMPLETE fields.
-M, --midlevel=LEV
LEV is placed in the SCSI_LOG_MLQUEUE and SCSI_LOG_MLCOMPLETE fields.
--mlcomplete=LEV
LEV is placed in the SCSI_LOG_MLCOMPLETE field.
--mlqueue=LEV
LEV is placed in the SCSI_LOG_MLQUEUE field.
-S, --scan=LEV
LEV is placed in the SCSI_LOG_SCAN field.
-s, --set
Uses the fields specified in this command's options and attempts to apply them to the Linux SCSI subsystem logging levels. Typically superuser permissions will be required to do this.
-T, --timeout=LEV
LEV is placed in the SCSI_LOG_TIMEOUT field.
-v, --version
Outputs the version information and then exits.
The --get and --set options access the /proc/sys/dev/scsi/logging_level pseudo file.
The exit status of this script is 0 when it is successful. Any other exit status indicates that an error has occurred.
The following will set SCSI_LOG_ERROR to level 5 in the Linux kernel. It requires root permissions:
scsi_logging_level -s -E 5
So as to not interfere with other SCSI subsystem upper level drivers (ULDs) which most likely will be active at the same time, the Linux sg driver uses SCSI_LOG_TIMEOUT. To see full debugging and trace from the sg driver use:
scsi_logging_level -s -T 7
The output from the sg driver caused by this will go to the system logs (e.g. /var/log/syslog). To reduce the amount of output use a number lower than 7. Using 0 will turn off the tracing and debug.
Written by IBM. Small alterations by Douglas Gilbert.
Report bugs to <dgilbert at interlog dot com>.
Copyright © IBM Corp. 2006
This software is distributed under the GPL version 2. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
The software was obtained from an IBM package called s390-tools-1.6.2 found on that company's "developerworks" site. The most recent version of that package at this time is 1.8.3 .