Features Download
From: Vladislav Bolkhovitin <vst <at> vlnb.net>
Subject: [ANNOUNCE]: SCST target drivers suit 1.0.1 development freeze
Newsgroups: gmane.linux.kernel
Date: Friday 27th March 2009 20:52:49 UTC (over 7 years ago)
Hi All,

I'm glad to announce that development of SCST drivers suit is frozen and 
ready for final testing before release, which is scheduled in few weeks 
time depending from amount of problems found during testing.

The SCST is an alternative implementation of SCSI target subsystem for 
Linux. It provides unified, consistent interface between SCSI target 
drivers and Linux kernel and simplifies target drivers development.

SCST allows creation of sophisticated storage devices, which 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. SCST created devices not limited by IP 
network interface only, but they can use any link supporting SCSI-style 
data exchange, including Fibre Channel, SAS and parallel SCSI. It might 
well be that your favorite storage appliance running SCST in the firmware.

SCST suit consists of a set of subprojects: SCST core itself with a set 
of device handlers as well as target drivers and user space utilities. 
Particularly, it has target drivers for iSCSI, QLogic qla2xxx cards and 
InfiniBand SRP. You can find more info about it on SCST home page 

SCST aims to be included in the mainline kernel. You can find the first 
iteration of SCST patches review in http://lkml.org/lkml/2008/12/10/245.

You can download SCST target drivers suit 1.0.1 by running a command:

$ svn co https://scst.svn.sourceforge.net/svnroot/scst/branches/1.0.1.x

Summary of changes in SCST core between versions 1.0.0 and 1.0.1

  - Support for descriptor sense format added

  - Makefiles made more packager friendly (Ruben Laban)

  - Support for variable length CDB added

  - Support for Asynchronous Event Notifications added

  - Implemented "plug-and-play" notifications about new devices in
    security groups, deleted devices from security groups and changed
    size of a device. They can be delivered either through AENs (if
    supported), or Unit Attentions.

  - New command "resync_size" added to scst_vdisk proc interface to tell
    scst_vdisk to reread size of the corresponding device after it was

  - Added pattern matching for initiator names in SCST access control
    (Gennadiy Nerubayev)

  - Now only sent for execution commands are counted to wait for in TM
    commands, which made processing of TM commands faster

  - Now devices blocked only in reset TM commands. ABORTs, etc. now done
    without devices blocking.

  - scst_unregister_session_ex() removed, since there are no users of it

  -  New functions added to scst_user interface:

     * SCST_USER_UNREGISTER_DEVICE - to unregister device, flush mem
       reuse (SGV) cache and send UCMD_STATE_ON_CACHE_FREEING
       notifications for all freed buffers to the user space handler.
       Simple device close doesn't allow that, so all the cached buffers
       might look as "leaked" from the user space handler POV.

     * SCST_USER_FLUSH_CACHE - to flush mem reuse (SGV) cache and send
       UCMD_STATE_ON_CACHE_FREEING notifications for all freed buffers to
       the user space handler

     * SCST_USER_DEVICE_CAPACITY_CHANGED - to notify SCST core that the
       corresponding device has changed its capacity

  - Clustering of scst_user pages added

  - Added autogenerated SCSI SN in vdisk handler

  - Fixed race in scst_user, which could have lead to usage of already
    freed command. A misbehaving user space handler could have made ucmd
    to get dead immediately after the lock is released and that is caught

  - Support for CentOS 5.2 added (Bart Van Assche)

  - In scst_vdisk new module parameter num_threads added to specify a
    number of threads for each vdisk/vcdrom. Default is 5.

  - Access control docs updated

  - Set memory limits according to LOWMEM, not TOTALMEM

  - Major performance increase working with disk based storage

  - Now task_mgmt_fn() callback called for TARGET RESET and NEXUS LOSS
    functions only once for tgt_dev, which belongs to the session, from
    which the corresponding request came

  - SGV cache related parameters moved from scst.h to scst_sgv.h

  - Log level mgmt_minor for messages like "Warning: expected transfer
    length X for opcode Y" changed to be disabled by default

  - Added possibility to coexist if both target driver and dev handler
    need custom memory allocation. Direct consequences: (1) scst_local
    can work with scst_user's devices and (2) scst_user now compatible
    with iscsi-scst if put_page_callback patch not applied.

  - Deprecated scst_cmd_get_tgt_resp_flags() removed

  - SWP and TAS parameters made changeable in vdisk handler

  - External interface changed to fix usage of in_atomic(). Now target
    drivers and dev handlers need to explicitly supply preferred
    execution context in scst_cmd_done() and scst_tgt_cmd_done()

  - Handling of internal REQUEST SENSE fixed.

  - Fixed SAM violation (HiSup bit must be set in INQUIRY response)

  - Fixed handling of VERIFY commands that comes with BYTCHK unset

  - Handling of double reset UAs made more reliable

  - A lot of kernel style, checkpatch and sparse fixes (Bart Van Assche)

  - In-kernel build integration (Bart Van Assche)

  - Update for kernels up to 2.6.29

  - A lot of fixes and cleanups (many people)

Summary of changes in iSCSI-SCST between versions 1.0.0 and 1.0.1

  - Support for variable length CDB added

  - Sending and receiving padding bytes as well as sense data
    reimplemented to make it more reliable

  - Support for SCSI Asynchronous Event Notifications added

  - Sessions and connections reinstatement reimplemented to be conforming
    to iSCSI RFC

  - iscsi-scst-adm fixed

  - Removed artificial limitation of sg_tablesize. It isn't needed,
    because the regular iSCSI negotiated MaxRecvDataSegmentLength-related
    facilities do all the job pretty well.

  - Merge with IET r170-211:

    * Update MaxConnections documentation

    * Remove isns config description from man page

    * Check return values of chdir(), ftruncate() and write(), because
      recent versions of the glibc insist on the return value being
      checked by introducing __attribute__((warn_unused_result)) to these

    * Fix snprintf use in isns.c

    * Take \0-termination into account when passing strings to
      isns_tlv_set() to solve incompatibility with MS iSNS 3.0 as IQN
      length is multiple of 4

    * Fix list corruption if SCST target registration fails

    * Register the target port actually used instead of the default iSCSI

    * Remove unused connection->pad

    * Refactor cmnd_execute()

    * Introduce min*/max*() and more list_* macros

    * Multipart PDU support for discovery sessions

    * Add support for Reject PDUs and make use of them in appropriate

    * Ignore SIGPIPE in iscsi-scstd

    * Allow removal of kernel target objects if the user space object
      does not exist

    * Use netlink_socket_release() to clean up netlink sockets correctly
      (taking care of namespaces)

    * More scalable proc seq_file implementation

    * Segfault in ietd buffer overrun in dump_line

    * Add iscsi-scst-adm support to display list of CHAP accounts and
      their data

    * Fixed compilation on glibc 2.8

    * Fix CHAP account handling bugs

    * Fix bugs in multi PDU handling code

  - Support for CentOS 5.2 added (Bart Van Assche)

  - Fixed NOP-Out with payload handling

  - Several minor iSCSI RFC violations fixed

  - Update for kernels up to 2.6.29

  - Zero-copy feature, introduced by put_page_callback patch made
    kernel compile time configurable via
    upgrade from earlier versions, see the corresponding "[CAUTION]"
    e-mail in scst-devel mailing list about possible compatibility

  - A lot of cleanups and minor fixes

Summary of changes in qla2x00t between versions 1.0.0 and 1.0.1

  - Update to initiator driver from 2.6.27

  - HOWTO added (Amit Mehta)

  - Fixed wrong sess_count decrement on session registration failure

  - Fixed possible oops in the initiator driver on the module unload

  - Updated to work on kernels up to 2.6.29

  - Other minor fixes

Summary of changes in SRPT between versions 1.0.0 and 1.0.1

  - Update for kernels up to 2.6.29

  - Fixed incorrect SCST state used on error path

  - Unneeded context switches during commands processing eliminated

  - Minor fixes and cleanups

Summary of changes in fileio_tgt between versions 1.0.0 and 1.0.1

  - Added notification about device capacity change

  - Usage of new commands SCST_USER_UNREGISTER_DEVICE,

  - Sync with vdisk handler

  - Added autogenerated SCSI SN

Change logs for other modules have not updated yet, but going to be 
updated soon.

Thanks to all who made it happen!
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
CD: 3ms