Files
scst/www/index.html
Yan Burman d7e6569b1a Merged revisions 5667-5670,5672-5686,5698,5700-5722,5724-5737 via svnmerge from
svn+ssh://yanb123@svn.code.sf.net/p/scst/svn/trunk

........
  r5667 | bvassche | 2014-07-08 18:11:58 +0300 (Tue, 08 Jul 2014) | 1 line
  
  nightly build: Update kernel versions
........
  r5668 | vlnb | 2014-07-10 04:00:29 +0300 (Thu, 10 Jul 2014) | 3 lines
  
  Make SCST interface compatibility more robust
........
  r5669 | bvassche | 2014-07-10 09:17:57 +0300 (Thu, 10 Jul 2014) | 1 line
  
  scst/Makefile: Create /var/lib/scst/vdev_mode_pages while installing SCST
........
  r5670 | bvassche | 2014-07-10 09:18:58 +0300 (Thu, 10 Jul 2014) | 1 line
  
  scst.spec.in: Create /var/lib/scst/pr and /var/lib/scst/vdev_mode_pages when installing the SCST RPM
........
  r5672 | bvassche | 2014-07-10 15:29:59 +0300 (Thu, 10 Jul 2014) | 2 lines
  
  scripts/rebuild-rhel-kernel-rpm: Move code for downloading a RHEL (clone) RPM into a separate file
........
  r5673 | bvassche | 2014-07-11 09:48:49 +0300 (Fri, 11 Jul 2014) | 1 line
  
  scripts/generate-kernel-patch: Also generate scst-itf-ver.h
........
  r5674 | bvassche | 2014-07-11 10:54:19 +0300 (Fri, 11 Jul 2014) | 1 line
  
  scripts/generate-kernel-patch: Remove trailing whitespace
........
  r5675 | vlnb | 2014-07-12 03:53:46 +0300 (Sat, 12 Jul 2014) | 3 lines
  
  BLOCKIO microoptimization: use per-device biosets
........
  r5676 | bvassche | 2014-07-13 10:15:05 +0300 (Sun, 13 Jul 2014) | 1 line
  
  nightly build: Update kernel versions
........
  r5677 | vlnb | 2014-07-16 06:27:20 +0300 (Wed, 16 Jul 2014) | 3 lines
  
  Install scst_itf_ver.h as well
........
  r5678 | bvassche | 2014-07-16 08:35:40 +0300 (Wed, 16 Jul 2014) | 1 line
  
  scst-devel rpm: Include /usr/include/scst/scst_itf_ver.h
........
  r5679 | bvassche | 2014-07-16 11:29:16 +0300 (Wed, 16 Jul 2014) | 6 lines
  
  ib_srpt: Fix Mellanox OFED build
  
  Use the proper include directory when building against Mellanox OFED.
  Do not require to remove /lib/modules/$(KVER)/kernel/drivers/infiniband
  before building ib_srpt.
........
  r5680 | bvassche | 2014-07-18 12:27:41 +0300 (Fri, 18 Jul 2014) | 1 line
  
  srpt/Makefile: Remove a superfluous assignment statement
........
  r5681 | bvassche | 2014-07-18 12:28:22 +0300 (Fri, 18 Jul 2014) | 1 line
  
  srpt/Makefile: SLES + Mellanox OFED build fix
........
  r5682 | bvassche | 2014-07-18 12:30:25 +0300 (Fri, 18 Jul 2014) | 1 line
  
  srpt/README: Fix SLES patch instructions
........
  r5683 | vlnb | 2014-07-19 06:54:33 +0300 (Sat, 19 Jul 2014) | 11 lines
  
  iscsi-scst: Handle data buffers with non-zero offset correctly
  
  Start at the proper offset in the receive buffer if sg[0].offset != 0.
  Return the proper data to the initiator if sg[0].offset != 0.
  
  This patch reworks trunk r5281, "iscsi-scst: fix offset
  calculation", February 13, 2014.
  
  Signed-off-by: Bart Van Assche <bvanassche@acm.org>
........
  r5684 | vlnb | 2014-07-19 07:08:30 +0300 (Sat, 19 Jul 2014) | 10 lines
  
  scst: Clean up scst_process_active_cmd()
  
  Since inside scst_process_active_cmd() cmd->state can only change after
  cmd has been added back to the command list it is safe to perform the
  cmd->state check without holding the command list lock. Hence move the
  perform the cmd->state check without holding the command list lock.
  
  Signed-off-by: Bart Van Assche <bvanassche@acm.org>
........
  r5685 | vlnb | 2014-07-19 07:11:39 +0300 (Sat, 19 Jul 2014) | 7 lines
  
  scst: Introduce scst_set_thr_cpu_mask()
  
  This patch does not change any functionality.
  
  Signed-off-by: Bart Van Assche <bvanassche@acm.org>
........
  r5686 | vlnb | 2014-07-19 07:13:24 +0300 (Sat, 19 Jul 2014) | 8 lines
  
  scst_vdisk: Micro-optimize the zero-copy check
  
  Only evaluate the SCSI command type if virt_dev->zero_copy has been
  set instead of always checking the SCSI command type.
  
  Signed-off-by: Bart Van Assche <bvanassche@acm.org>
........
  r5698 | bvassche | 2014-07-20 11:37:58 +0300 (Sun, 20 Jul 2014) | 1 line
  
  nightly build: Update kernel versions
........
  r5700 | vlnb | 2014-07-22 02:04:18 +0300 (Tue, 22 Jul 2014) | 3 lines
  
  Web updates
........
  r5701 | vlnb | 2014-07-22 03:22:06 +0300 (Tue, 22 Jul 2014) | 8 lines
  
  scst: Make scst_cmd_threads.threads_list locking more fine-grained
  
  Introduce a new synchronization object, namely scst_cmd_threads.thr_lock,
  to protect scst_cmd_threads.threads_list.
  
  Signed-off-by: Bart Van Assche <bvanassche@acm.org>
........
  r5702 | vlnb | 2014-07-23 05:00:06 +0300 (Wed, 23 Jul 2014) | 7 lines
  
  Prevent possible collisions between saved PR and mode pages backup files
  
  From now on '.' is illegal character in SCST device names
  
  Reported-by Ken Raeburn <raeburn@permabit.com>
........
  r5703 | vlnb | 2014-07-23 05:49:50 +0300 (Wed, 23 Jul 2014) | 5 lines
  
  Review of host_status handling (pass-through mode)
  
  Inspired by Dave Butler <tears.the@gmail.com> and Bart Van Assche <bvanassche@acm.org>
........
  r5704 | vlnb | 2014-07-26 03:04:51 +0300 (Sat, 26 Jul 2014) | 3 lines
  
  Internal REQUEST SENSE: NO SENSE is also valid sense
........
  r5705 | vlnb | 2014-07-29 02:11:14 +0300 (Tue, 29 Jul 2014) | 3 lines
  
  Print initiator and target in the abort messages
........
  r5706 | vlnb | 2014-07-30 05:27:10 +0300 (Wed, 30 Jul 2014) | 3 lines
  
  Minor logging improvements
........
  r5707 | vlnb | 2014-07-30 05:52:26 +0300 (Wed, 30 Jul 2014) | 3 lines
  
  Follow up for r5704: NO SENSE is also valid sense
........
  r5708 | vlnb | 2014-07-30 05:53:07 +0300 (Wed, 30 Jul 2014) | 3 lines
  
  Minor fix
........
  r5709 | bvassche | 2014-08-06 20:40:30 +0300 (Wed, 06 Aug 2014) | 1 line
  
  nightly build: Update kernel versions
........
  r5710 | bvassche | 2014-08-07 10:20:08 +0300 (Thu, 07 Aug 2014) | 1 line
  
  RHEL 7: Add scst_exec_req_fifo and put_page_callback patches
........
  r5711 | bvassche | 2014-08-07 11:12:22 +0300 (Thu, 07 Aug 2014) | 1 line
  
  Rename the two RHEL 7 scst_exec_req_fifo patches
........
  r5712 | bvassche | 2014-08-07 11:38:19 +0300 (Thu, 07 Aug 2014) | 1 line
  
  scripts/rebuild-rhel-kernel-rpm: Add RHEL 7 support
........
  r5713 | bvassche | 2014-08-08 13:37:17 +0300 (Fri, 08 Aug 2014) | 1 line
  
  nightly build: Update kernel versions
........
  r5714 | bvassche | 2014-08-09 14:02:19 +0300 (Sat, 09 Aug 2014) | 1 line
  
  scripts/rebuild-rhel-kernel-rpm: Install more prerequisites
........
  r5715 | bvassche | 2014-08-15 10:49:07 +0300 (Fri, 15 Aug 2014) | 1 line
  
  nightly build: Update kernel versions
........
  r5716 | vlnb | 2014-08-16 02:44:33 +0300 (Sat, 16 Aug 2014) | 3 lines
  
  Fix blockio bioset for older kernels, which need explicit bio destructors
........
  r5717 | vlnb | 2014-08-20 00:52:31 +0300 (Wed, 20 Aug 2014) | 3 lines
  
  Update for kernels 3.16
........
  r5718 | vlnb | 2014-08-20 05:24:08 +0300 (Wed, 20 Aug 2014) | 12 lines
  
  Fix Coverity warning of q2t_ctio_to_cmd() dead code
  
  Coverity warns that 'handle == Q2T_SKIP_HANDLE' can never occur, because
  code preceding the test has masked out a handle bit that would be
  required for the test to succeed.
  
  Fix that by extending Q2T_SKIP_HANDLE to incorporate
  CTIO_INTERMEDIATE_HANDLE_MARK as well.
  
  Reported-by: Steven J. Magnani <steve@digidescorp.com>
........
  r5719 | bvassche | 2014-08-20 09:55:04 +0300 (Wed, 20 Aug 2014) | 1 line
  
  nightly build: Add kernel 3.16 nightly build infrastructure
........
  r5720 | bvassche | 2014-08-20 09:57:04 +0300 (Wed, 20 Aug 2014) | 1 line
  
  nightly build: Add kernel version 3.16.1
........
  r5721 | vlnb | 2014-08-21 08:17:47 +0300 (Thu, 21 Aug 2014) | 5 lines
  
  Fix incorrect address computation during receive PDUs preparations
  
  Found and fix suggested by Кирилл Тюшев <kirill.tyushev8@gmail.com>
........
  r5722 | vlnb | 2014-08-21 08:18:43 +0300 (Thu, 21 Aug 2014) | 3 lines
  
  Integration of the QLogic git's qla2x00t into the SCST tree
........
  r5724 | bvassche | 2014-08-22 10:19:55 +0300 (Fri, 22 Aug 2014) | 9 lines
  
  Fix a kernel 3.16 checkpatch complaint about trailing semicolons
  
  Avoid that the checkpatch tool included in Linux kernel v3.16 reports the
  following warning:
  
      macros should not use a trailing semicolon
  
  This patch does not change any functionality.
........
  r5725 | bvassche | 2014-08-25 14:36:33 +0300 (Mon, 25 Aug 2014) | 1 line
  
  ib_srpt: Kernel v3.17 build fix
........
  r5726 | bvassche | 2014-08-25 14:41:55 +0300 (Mon, 25 Aug 2014) | 1 line
  
  ib_srpt: Log QPN next to session name
........
  r5727 | bvassche | 2014-08-25 14:46:43 +0300 (Mon, 25 Aug 2014) | 6 lines
  
  ib_srpt: Speed up kernel driver unloading after a cable pull
  
  When unloading the ib_srpt kernel module, instead of waiting until
  all connected queue pairs have left the TimeWait state, destroy
  these queue pairs immediately.
........
  r5728 | bvassche | 2014-08-25 15:50:19 +0300 (Mon, 25 Aug 2014) | 8 lines
  
  ib_srpt: Make the completion vector configurable
  
  Allow a set of completion vectors to be associated with each InfiniBand
  HCA port and allocate the completion vector for each session in a
  round-robin fashion from the per-port set. This helps to spread the
  InfiniBand interrupt workload over multiple CPU's, at least if different
  InfiniBand MSI-X vectors are associated with different CPU's.
........
  r5729 | vlnb | 2014-08-26 06:21:07 +0300 (Tue, 26 Aug 2014) | 7 lines
  
  scst_vdisk: Make vdisk_sup_vpd() easier to extend
  
  This patch doesn't change any functionality.
  
  Signed-off-by: Bart Van Assche <bvanassche@acm.org>
........
  r5730 | vlnb | 2014-08-26 06:44:23 +0300 (Tue, 26 Aug 2014) | 12 lines
  
  scst_vdisk: Make EUI-64 and NAA IDs configurable
  
  Make the SCSI device identification page (83h) EUI-64 and NAA
  IDs configurable. If neither the eui64_id nor the naa_id sysfs
  attribute has been set, export the first eight bytes of the
  t10_dev_id as an EUI-64 ID. If the NAA ID but not the EUI-64 ID
  has been set, report the NAA ID only. If both IDs have been set,
  report both.
  
  Signed-off-by: Bart Van Assche <bvanassche@acm.org>
........
  r5731 | bvassche | 2014-08-26 12:56:54 +0300 (Tue, 26 Aug 2014) | 1 line
  
  scstadmin: Avoid that the Perl interpreter prints a warning message about using an undefined variable on Fedora systems
........
  r5732 | vlnb | 2014-08-27 05:41:40 +0300 (Wed, 27 Aug 2014) | 9 lines
  
  iscsi-scst: Build fix for IPV6=n
  
  Ensure that iscsi-scst builds properly against a kernel with CONFIG_IPV6=n.
  
  Reported by Igor Novgorodov <igor@novg.net> on June 7, 2014.
  
  Signed-off-by: Bart Van Assche <bvanassche@acm.org>
........
  r5733 | vlnb | 2014-08-27 05:42:35 +0300 (Wed, 27 Aug 2014) | 9 lines
  
  scst_pres: Make a few error messages more clear
  
  Make it possible to figure out what went wrong from inspecting the
  system log only by mentioning the incorrect filename in the system
  log.
  
  Signed-off-by: Bart Van Assche <bvanassche@acm.org>
........
  r5734 | vlnb | 2014-08-27 05:43:50 +0300 (Wed, 27 Aug 2014) | 8 lines
  
  scst: Remove set_cpus_allowed() invocations
  
  Since scst.h contains a backport of the definition of set_cpus_allowed_ptr(),
  the set_cpus_allowed() invocations are superfluous. Hence remove these.
  
  Signed-off-by: Bart Van Assche <bvanassche@acm.org>
........
  r5735 | vlnb | 2014-08-27 05:55:28 +0300 (Wed, 27 Aug 2014) | 8 lines
  
  iscsi-scst: Micro-optimize cmnd_prepare_recv_pdu()
  
  Instead of adding sg[idx].offset to addr and immediately subtracting
  sg[idx].offset again, leave out both arithmetic operations.
  
  Signed-off-by: Bart Van Assche <bvanassche@acm.org>
........
  r5736 | vlnb | 2014-08-27 06:00:44 +0300 (Wed, 27 Aug 2014) | 5 lines
  
  scst/include/scst.h: Document on_abort_cmd() further
  
  Signed-off-by: Bart Van Assche <bvanassche@acm.org>
........
  r5737 | bvassche | 2014-08-27 09:33:02 +0300 (Wed, 27 Aug 2014) | 1 line
  
  scst_vdisk: Build fix for kernel 3.1.x
........


git-svn-id: http://svn.code.sf.net/p/scst/svn/branches/iser@5738 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-08-27 13:26:02 +00:00

206 lines
12 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta name="Keywords" content="Generic SCSI Target Subsystem for Linux, SCST, SCSI target">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="author" content="Daniel Fernandes">
<meta name="Robots" content="index,follow">
<meta name="verify-v1" content="N5TwpSXr8cNkQf0gvE3F3sv+TPHL15k4dTo+ZQCeV9Q=">
<link rel="stylesheet" href="images/Orange.css" type="text/css">
<title>SCST: A Generic SCSI Target Subsystem for Linux</title>
</head>
<body>
<div id="wrap">
<div id="header">
<div class="logoimg"></div><h1 id="logo"><span class="orange"></span></h1>
<h2 id="slogan">Generic SCSI Target Subsystem for Linux</h2>
</div>
<div id="menu">
<ul>
<li id="current"><a href="index.html">Home</a></li>
<li><a href="http://www.sourceforge.net/projects/scst">Main</a></li>
<li><a href="http://sourceforge.net/news/?group_id=110471">News</a></li>
<li><a href="targets.html">Drivers</a></li>
<li><a href="downloads.html">Downloads</a></li>
<li><a href="contributing.html">Contributing</a></li>
<li><a href="comparison.html">Comparison</a></li>
<li><a href="users.html">Users</a></li>
<li><a href="solutions.html">Solutions</a></li>
</ul>
</div>
<div id="content-wrap">
<div id="main">
<h1>Generic SCSI Target Subsystem for Linux</h1>
<p>The generic SCSI target subsystem for Linux (SCST) allows creation of sophisticated storage devices
from any Linux box. Those
devices can provide advanced
functionality, like replication, thin provisioning,
deduplication, high availability,
automatic backup, etc. Another class of such devices
are Virtual Tape Libraries (VTL)
as well as other disk-based backup solutions.</p>
<p>SCST devices can use any link which supports
SCSI-style data exchange: <strong>iSCSI</strong>, <strong>Fibre Channel</strong>, <strong>FCoE</strong>,
<strong>SAS</strong>,
<strong>InfiniBand (SRP)</strong>, <strong>Wide (parallel) SCSI</strong>, etc.</p>
<p>It might
well be that your favorite storage appliance is running SCST in the firmware.</p>
<p>SCST project consists from a set of subprojects: generic SCSI target mid-layer itself (SCST core)
with a set of device handlers as well as target drivers
and user space utilities.
<h1>Features of SCST Core</h1>
<ul>
<li><span>SCST core provides unified,
consistent interface between SCSI target drivers and
Linux kernel as well as between Linux kernel and storage backend
handlers, connecting target drivers with real or emulated storage backend.</span></li>
<li><span>SCST core performs all required pre- and post- processing of incoming requests as well as
necessary error recovery.</span></li>
<li><span>SCST core undertakes most problems, related to execution contexts, thus practically eliminating one of the most
complicated problem in the kernel drivers development. For example, target drivers for Marvell
SAS adapters or for InfiniBand SRP are less 3000 lines of code long.</span></li>
<li><span>Very low overhead and fine-grained locks allow to reach the
maximum performance and scalability. Particularly, incoming requests can be processed in
the caller's context or in one of the internal SCST core's tasklets without any
extra context switches.</span></li>
<li><span>Device handlers architecture allows various I/O
modes in backstorage handling. For example, pass-through device handlers allow to export real
SCSI hardware and vdisk device handler allows to export files as virtual disks.</span></li>
<li><span>Advanced per-initiator devices visibility management (LUN masking) allows different
initiators to see different set of devices with different access permissions. For instance,
initiator A could see exported from target T devices X and Y read-writable, and initiator B from
the same target T could see devices Y read-only and Z read-writable.
This feature is required for hardware targets, which don't have ability to create
virtual targets (SAS adapters, for instance).</span></li>
<li><span>SCST core emulates necessary functionality of SCSI host adapter, because from remote initiators' point of view
a SCSI target acts as a SCSI host with its own devices. This is especially important in pass-through mode with
one to many relationship, i.e. when multiple initiators can connect to the exported pass-through
devices. You can find more deep elaboration why it is needed in <a href="http://www.mail-archive.com/linux-scsi@vger.kernel.org/msg06911.html">this</a>
message in thread "Question for pass-through target design" in linux-scsi mailing list. Some of the emulated functions are the following:</span>
<ul>
<li><span>Generation of necessary UNIT ATTENTIONs, their storage and delivery to all connected
remote initiators.</span></li>
<li><span>RESERVE/RELEASE functionality.</span></li>
<li><span>All types of RESETs and other task management functions.</span></li>
<li><span>REPORT LUNS command as well as SCSI address space management in order to have consistent
address space on all remote initiators, since local SCSI devices could not know about each
other to report via REPORT LUNS command. Additionally, SCST core responds with error on all
commands to non-existing devices and provides access control, so different remote
initiators could see different set of devices.</span></li>
<li><span>Other necessary functionality (task attributes, etc.) as specified in SCSI standards.</span></li>
</ul>
</li>
<li><span>SCST core has multithreaded design and complete SMP support, so, if necessary, all your CPU cores will participate in the commands
processing.</span></li>
<li><span>Well documented.</span></li>
</ul>
<p>Interoperability between remote and local SCSI initiators (i.e. sd, st, etc.) is the additional issue that SCST is going to
address (it is not implemented yet). It is necessary, because local SCSI initiators can change the state of the
device, for example RESERVE the device, or some of its parameters and that could be done behind SCST, i.e. remote initiators
will not know about it, which could
lead to various problems, including data corruption. Thus, RESERVE/RELEASE commands, locally generated
UNIT ATTENTIONs, etc. should be intercepted and passed through SCST core.</p>
<p>You can find comparison of SCST with other SCSI targets on the <a href="comparison.html">Comparison</a> page.
Some highlights what it can mean for end users you can find on the <a href="target_iscsi.html">iSCSI-SCST</a> page.
<h1>SCST core supports the following I/O modes</h1>
<ul>
<li><span>Pass-through mode with one to many relationship, i.e. when multiple initiators can
connect to the exported pass-through devices, for virtually all SCSI devices types: disks (type 0),
tapes (type 1), processors (type 3), CDROMs (type 5), MO disks (type 7), medium changers (type 8) and RAID
controllers (type 0xC). In this mode you can, for instance, share your parallel SCSI tape or SATA
DVD-RW device to your iSCSI network.</span></li>
<li><span>FILEIO mode, which allows to use files on file systems or block devices as virtual
remotely available SCSI disks or CDROMs with benefits of the Linux cache.</span></li>
<li><span>BLOCKIO mode, which performs direct block IO with a block device, bypassing
page-cache for all operations. This mode works well with high-end storage HBAs and for applications that
either do not need caching between application and disk or need the large block throughput.</span></li>
<li><span>User space mode using scst_user device handler, which allows to implement in the
user space high performance virtual SCSI devices. Comparing with fully in-kernel dev handlers
this mode has very low overhead (few %%).</span></li>
<li><span>Performance testing device handlers as well as NULLIO mode to provide
a way for direct performance measurements without overhead of actual data
transfers from/to underlying SCSI devices.
</span></li>
</ul>
<h1>Certification</h1>
<p>SCST core engine has passed VMware certification as part of
<a href="http://scalecomputing.com/products">Scale&rsquo;s Intelligent Clustered Storage</a> technology developed by
<a href="http://scalecomputing.com">Scale Computing</a> as well as VMware and Microsoft certification as part of
storage arrays developed by <a href="http://www.open-e.com/">Open-E, Inc</a> and
<a href="http://www.starboardstorage.com">Starboard Storage</a>.</p>
<p>As of October 2012 SCST-based Hewlett-Packard ProLiant BL465c Gen8 earned the maximum
score 59.99@62 tiles in <a href="http://www.vmware.com/a/vmmark">VMmark Version 2.1.1</a>.</p>
</div>
<div id="rightbar">
<h1>Documentation</h1>
<p><a href="scst_pg.html">HTML</a></p>
<p><a href="scst_pg.pdf">PDF</a></p>
<p><a href="http://monklinux.blogspot.com/2012/02/scst-configuration-how-to-using-gentoo.html">Gentoo HOWTO</a></p>
<p><a href="iscsi-scst-howto.txt">HOWTO For iSCSI-SCST</a></p>
<p><a href="SCST_Gentoo_HOWTO.txt">Gentoo HOWTO For iSCSI-SCST</a></p>
<p><a href="qla2x00t-howto.html">HOWTO For QLogic Target Driver</a></p>
<p><a href="sgv_cache.html">SCST SGV Cache Description</a></p>
<h1>Articles</h1>
<p>By Marc Smith:</p>
<p><a href="http://marcitland.blogspot.com/2011/03/accelerating-vdi-using-scst-and-ssds.html">Accelerating VDI Using SCST and SSDs</a></p>
<p><a href="http://marcitland.blogspot.com/2013/04/building-using-highly-available-esos.html">Building &amp Using a Highly Available ESOS Disk Array</a></p>
<p><a href="http://marcitland.blogspot.com/2014/07/open-storage-dual-controller-oss-disk.html">Open Storage: Dual-Controller OSS Disk Array</a></p>
<h1>SCST 0.9.6 graphs</h1>
<p><a href="images/init_scst.png">init_scst</a></p>
<p><a href="images/scst_cmd_thread.png">scst_cmd_thread</a></p>
<p><a href="images/scst_mgmt_cmd_thread.png">scst_mgmt_cmd_thread</a></p>
<p><a href="images/scst_mgmt_thread.png">scst_mgmt_thread</a></p>
<p>all by Ming Zhang</p>
<h1>QUESTIONS</h1>
<p>If you have any questions you can ask them via<br><a href="http://lists.sourceforge.net/lists/listinfo/scst-devel">
scst-devel mailing list</a><br><br>
See <a href="http://sourceforge.net/mail/?group_id=110471">mailing lists page</a> for more info about SCST mailing
lists.</p>
<h1></h1>
<p><a href="http://sourceforge.net/donate/index.php?group_id=110471">
<img src="http://images.sourceforge.net/images/project-support.jpg" width="88" height="32" border="0" alt="Support This Project"> </a></p>
<h1></h1>
<p><a href="http://validator.w3.org/check?uri=referer">
<img src="http://www.w3.org/Icons/valid-html401" alt="Valid HTML 4.01 Transitional" height="31" width="88"></a>
</p>
<p><a href="http://jigsaw.w3.org/css-validator/check/referer">
<img style="border:0;width:88px;height:31px" src="http://jigsaw.w3.org/css-validator/images/vcss" alt="Valid CSS!"></a>
</p>
</div>
</div>
</div>
<!-- footer starts here -->
<div id="footer">
<p>&copy; Copyright 2004 - 2014<b><font class="names"> Vladislav Bolkhovitin/SCST Ltd &amp others.</font></b>&nbsp;&nbsp;
Design by: <b><font class="names">Daniel Fernandes</font></b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p>
</div>
<!-- footer ends here -->
<!-- Piwik -->
<script type="text/javascript">
var pkBaseURL = (("https:" == document.location.protocol) ? "https://apps.sourceforge.net/piwik/scst/" : "http://apps.sourceforge.net/piwik/scst/");
document.write(unescape("%3Cscript src='" + pkBaseURL + "piwik.js' type='text/javascript'%3E%3C/script%3E"));
</script><script type="text/javascript">
piwik_action_name = '';
piwik_idsite = 1;
piwik_url = pkBaseURL + "piwik.php";
piwik_log(piwik_action_name, piwik_idsite, piwik_url);
</script>
<object><noscript><p><img src="http://apps.sourceforge.net/piwik/scst/piwik.php?idsite=1" alt="piwik"></p></noscript></object>
<!-- End Piwik Tag -->
</body>
</html>