blob: 402fca7cf72dbb054e9f2039c4bc30ea4ee6c9dd [file] [log] [blame]
menu "SCSI target (SCST) support"
config SCST
tristate "SCSI target (SCST) support"
depends on SCSI
help
SCSI target (SCST) is designed to provide unified, consistent
interface between SCSI target drivers and Linux kernel and
simplify target drivers development as much as possible. Visit
http://scst.sourceforge.net for more info about it.
config SCST_DISK
tristate "SCSI target disk support"
default SCST
depends on SCSI && SCST
help
SCST pass-through device handler for disk device.
config SCST_TAPE
tristate "SCSI target tape support"
default SCST
depends on SCSI && SCST
help
SCST pass-through device handler for tape device.
config SCST_CDROM
tristate "SCSI target CDROM support"
default SCST
depends on SCSI && SCST
help
SCST pass-through device handler for CDROM device.
config SCST_MODISK
tristate "SCSI target MO disk support"
default SCST
depends on SCSI && SCST
help
SCST pass-through device handler for MO disk device.
config SCST_CHANGER
tristate "SCSI target changer support"
default SCST
depends on SCSI && SCST
help
SCST pass-through device handler for changer device.
config SCST_PROCESSOR
tristate "SCSI target processor support"
default SCST
depends on SCSI && SCST
help
SCST pass-through device handler for processor device.
config SCST_RAID
tristate "SCSI target storage array controller (RAID) support"
default SCST
depends on SCSI && SCST
help
SCST pass-through device handler for raid storage array controller (RAID) device.
config SCST_VDISK
tristate "SCSI target virtual disk and/or CDROM support"
default SCST
depends on SCSI && SCST
help
SCST device handler for virtual disk and/or CDROM device.
config SCST_USER
tristate "User-space SCSI target driver support"
default SCST
depends on SCSI && SCST && !HIGHMEM4G && !HIGHMEM64G
help
The SCST device handler scst_user allows to implement full-feature
SCSI target devices in user space.
If unsure, say "N".
config SCST_STRICT_SERIALIZING
bool "Strict serialization"
depends on SCST
help
Enable strict SCSI command serialization. When enabled, SCST sends
all SCSI commands to the underlying SCSI device synchronously, one
after one. This makes task management more reliable, at the cost of
a performance penalty. This is most useful for stateful SCSI devices
like tapes, where the result of the execution of a command
depends on the device settings configured by previous commands. Disk
and RAID devices are stateless in most cases. The current SCSI core
in Linux doesn't allow to abort all commands reliably if they have
been sent asynchronously to a stateful device.
Enable this option if you use stateful device(s) and need as much
error recovery reliability as possible.
If unsure, say "N".
config SCST_STRICT_SECURITY
bool "Strict security"
depends on SCST
help
Makes SCST clear (zero-fill) allocated data buffers. Note: this has a
significant performance penalty.
If unsure, say "N".
config SCST_TEST_IO_IN_SIRQ
bool "Allow test I/O from soft-IRQ context"
depends on SCST
help
Allows SCST to submit selected SCSI commands (TUR and
READ/WRITE) from soft-IRQ context (tasklets). Enabling it will
decrease amount of context switches and slightly improve
performance. The goal of this option is to be able to measure
overhead of the context switches. See more info about it in
README.scst.
WARNING! Improperly used, this option can lead you to a kernel crash!
If unsure, say "N".
config SCST_ABORT_CONSIDER_FINISHED_TASKS_AS_NOT_EXISTING
bool "Send back UNKNOWN TASK when an already finished task is aborted"
depends on SCST
help
Controls which response is sent by SCST to the initiator in case
the initiator attempts to abort (ABORT TASK) an already finished
request. If this option is enabled, the response UNKNOWN TASK is
sent back to the initiator. However, some initiators, particularly
the VMware iSCSI initiator, interpret the UNKNOWN TASK response as
if the target got crazy and try to RESET it. Then sometimes the
initiator gets crazy itself.
If unsure, say "N".
config SCST_USE_EXPECTED_VALUES
bool "Prefer initiator-supplied SCSI command attributes"
depends on SCST
help
When SCST receives a SCSI command from an initiator, such a SCSI
command has both data transfer length and direction attributes.
There are two possible sources for these attributes: either the
values computed by SCST from its internal command translation table
or the values supplied by the initiator. The former are used by
default because of security reasons. Invalid initiator-supplied
attributes can crash the target, especially in pass-through mode.
Only consider enabling this option when SCST logs the following
message: "Unknown opcode XX for YY. Should you update
scst_scsi_op_table?" and when the initiator complains. Please
report any unrecognized commands to scst-devel@lists.sourceforge.net.
If unsure, say "N".
config SCST_EXTRACHECKS
bool "Extra consistency checks"
depends on SCST
help
Enable additional consistency checks in the SCSI middle level target
code. This may be helpful for SCST developers. Enable it if you have
any problems.
If unsure, say "N".
config SCST_TRACING
bool "Tracing support"
depends on SCST
default y
help
Enable SCSI middle level tracing support. Tracing can be controlled
dynamically via sysfs interface. The traced information
is sent to the kernel log and may be very helpful when analyzing
the cause of a communication problem between initiator and target.
If unsure, say "Y".
config SCST_DEBUG
bool "Debugging support"
depends on SCST
select DEBUG_BUGVERBOSE
help
Enables support for debugging SCST. This may be helpful for SCST
developers.
If unsure, say "N".
config SCST_DEBUG_OOM
bool "Out-of-memory debugging support"
depends on SCST
help
Let SCST's internal memory allocation function
(scst_alloc_sg_entries()) fail about once in every 10000 calls, at
least if the flag __GFP_NOFAIL has not been set. This allows SCST
developers to test the behavior of SCST in out-of-memory conditions.
This may be helpful for SCST developers.
If unsure, say "N".
config SCST_DEBUG_RETRY
bool "SCSI command retry debugging support"
depends on SCST
help
Let SCST's internal SCSI command transfer function
(scst_rdy_to_xfer()) fail about once in every 100 calls. This allows
SCST developers to test the behavior of SCST when SCSI queues fill
up. This may be helpful for SCST developers.
If unsure, say "N".
config SCST_DEBUG_SN
bool "SCSI sequence number debugging support"
depends on SCST
help
Allows to test SCSI command ordering via sequence numbers by
randomly changing the type of SCSI commands into
SCST_CMD_QUEUE_ORDERED, SCST_CMD_QUEUE_HEAD_OF_QUEUE or
SCST_CMD_QUEUE_SIMPLE for about one in 300 SCSI commands.
This may be helpful for SCST developers.
If unsure, say "N".
config SCST_DEBUG_TM
bool "Task management debugging support"
depends on SCST_DEBUG
help
Enables support for debugging of SCST's task management functions.
When enabled, some of the commands on LUN 0 in the default access
control group will be delayed for about 60 seconds. This will
cause the remote initiator send SCSI task management functions,
e.g. ABORT TASK and TARGET RESET.
If unsure, say "N".
config SCST_TM_DBG_GO_OFFLINE
bool "Let devices become completely unresponsive"
depends on SCST_DEBUG_TM
help
Enable this option if you want that the device eventually becomes
completely unresponsive. When disabled, the device will receive
ABORT and RESET commands.
source "drivers/scst/fcst/Kconfig"
source "drivers/scst/iscsi-scst/Kconfig"
source "drivers/scst/scst_local/Kconfig"
source "drivers/scst/srpt/Kconfig"
endmenu