From 1dd534e2aa2d146dfa3860845cd826e3b641c98a Mon Sep 17 00:00:00 2001 From: Vladislav Bolkhovitin Date: Thu, 31 May 2007 15:13:13 +0000 Subject: [PATCH] Some docs updates git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@118 d57e44dd-8a1f-0410-8b47-8ef2f437770f --- scst/README | 29 ++++++++++++++++------------- scst/src/scst.c | 5 +++++ 2 files changed, 21 insertions(+), 13 deletions(-) diff --git a/scst/README b/scst/README index 2e1c61358..0d12e761a 100644 --- a/scst/README +++ b/scst/README @@ -423,22 +423,25 @@ IMPORTANT: Since data in BLOCKIO and FILEIO modes are not consistent between Pass-through mode ----------------- -As any other hardware, a local SCSI hardware for devices on target, -which are exported in the pass-through mode, can not handle commands -with amount of data and/or segments count in scatter-gather array -bigger, than some values. Therefore, when using the pass-through mode -you should note that the corresponding values on the corresponding -devices on initiators can not be bigger, than values, which the hardware -on the target can support. Otherwise you will see symptoms like small -transfers work well, but large ones stall and messages like: "Unable to -complete command due to SG IO count limitation" are printed in the -kernel logs. +In the pass-through mode (i.e. using the pass-through device handlers +scst_disk, scst_tape, etc) SCSI commands, coming from remote initiators, +are passed to local SCSI hardware on target as is, without any +modifications. As any other hardware, the local SCSI hardware can not +handle commands with amount of data and/or segments count in +scatter-gather array bigger some values. Therefore, when using the +pass-through mode you should note that values for maximum number of +segments and maximum amount of transferred data for each SCSI command on +devices on initiators can not be bigger, than corresponding values of +the corresponding SCSI devices on the target. Otherwise you will see +symptoms like small transfers work well, but large ones stall and +messages like: "Unable to complete command due to SG IO count +limitation" are printed in the kernel logs. You can't control from the user space limit of the scatter-gather segments, but for block devices usually it is sufficient if you set on -the initiator /sys/block/DEVICE_NAME/queue/max_sectors_kb in the same or -lower value as in /sys/block/DEVICE_NAME/queue/max_hw_sectors_kb for the -corresponding device on the target. +the initiators /sys/block/DEVICE_NAME/queue/max_sectors_kb in the same +or lower value as in /sys/block/DEVICE_NAME/queue/max_hw_sectors_kb for +the corresponding devices on the target. For not-block devices SCSI commands are usually generated directly by applications, so, if you experience large transfers stalls, you should diff --git a/scst/src/scst.c b/scst/src/scst.c index 39f722e63..853346c67 100644 --- a/scst/src/scst.c +++ b/scst/src/scst.c @@ -32,6 +32,11 @@ #include "scst_priv.h" #include "scst_mem.h" +#ifndef CONFIG_NOHIGHMEM +#warning HIGHMEM kernel configurations are supported, but not recommended. \ + Consider changing VMSPLIT option or using 64-bit configuration instead. +#endif + /* * All targets, devices and dev_types management is done under * this mutex.