[lkml]   [2005]   [Jun]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    Subject[ANNOUNCE 0/7] Open-iSCSI/Linux-iSCSI-5 High-Performance Initiator
    This is open-iscsi/linux-iscsi-5 Initiator. This submission is ready for
    inclusion into mainline kernel.

    It contains:

    - iscsi data path (iscsi_tcp)
    - iscsi transport class (scsi_transport_iscsi).

    This Initiator depends on this transport class, but not vice versa: the
    transport class is common, generic, and isolated from this concrete iscsi
    implementation by scsi_transport_iscsi.h interface (see the header file
    and/or diagrams on the open-iscsi website). Initiator's control plane (supplied
    separately at also does
    not depend on iscsi_tcp data path implementation - it's multi-transport
    capability is ensured by the the transport class itself.

    Changes since 05/05/05 submission
    * Stability: fixed a number of races between eh_abort(), conn_destroy(), abort
    timeout, etc.

    * Performance improvements.

    * Internally reviewed and cleaned up all the code, to the best of our ability.

    * Exported transport and session/connection information via sysfs.

    * Removed not-greater-than-page-size restriction; should be able to support
    applications using sg (tested) and presumably, st as well.

    The entire Initiator source including user space tools is available at and/or svn
    (, r363).

    The same tarball can be downloaded from the linux-iscsi project page on
    sourceforge at

    Many people contributed to testing. In particular, special thanks to:

    Pascal Renauld, Harald Kubota, Olivier Galibert, Arne Redlich.

    * misleading printout in top-level Makefile fixed
    * new ITT encoding implemented, should protect us from not well behaved targets
    * ctask->in_progress state machine depricated. using direct PDU header processing
    * using eh_host_reset_handler() to unjam iscsi session in case of interface fluks
    * more verificiation done before r2t response processing
    * recovery: ctask->SCp.Status deprecated, using ctask->sc (NULL/not NULL) instead
    * Mike: scsi_transport_iscsi.h copyright cleanup
    * Mike: minor coding style cleanup
    * Mike: fixed the error path when session class was not being unregistered
    * conn_stop() vs. eh_abort(): ctask->sc serialization via xmitsema
    * Mike: iscsi_tcp: remove extra tabs
    * fixed race between conn_destroy() and eh_abort()
    * properly flushing r2tqueue and stopping ctask from being xmited after TMF Abort
    * Mike: data_recv tabs cleanup
    * Mike: dockbook style comments
    * Mike: rm underscore in labels to match rest of driver
    * fixed limitation on number of scattered PDUs across SKBs. Discovered by Harald.
    * Mike: fixed some weird braces where locks would never get dropped if run and
    * session->state is no longer volatile, since we always access it under lock
    * session->generation is not longer volatile; renamed as session->age
    * Mike: add kernel printk values
    * Mike: rm extra module get/put call
    * each test-case now tested with fdisk+mkfs+bonnie
    * Mike: do copyright per line
    * Mike: merge iscsi_ifev.h and iscsi_if.h
    * Mike: rm iscsi_iftrans.h and move include of scsi_transport_iscsi.h
    * fixed iscsi_ctask_copy() buffer length bug (observed when using bonnie++ as a
    part of
    * Mike: rm extra braces and add a space between var declarations and code
    * enabling data digest causes lock-up (Arne Redlich)
    * Mike: whitespaces cleanup
    * Mike: coding style cleanup
    * Mike: rm extra brace and mv invalid param test
    * "un-volatile" tmabort_state (volatile is not needed)
    * remved session->conn_lock
    * "un-volatile" conn->c_stage
    * "un-volatile" conn->stop_stage
    * Wang Zhenyu: [io]fmarket typo fix
    * regression introduced in r341: fixed now
    * send_pdu(): use xmit semaphore, now serialized vs. data_xmit()
    * removed: conn->cpu and the (dead) code
    * data_xmit_more(): cleaned up and moved to the data_xmit()
    * comments in the iscsi_tcp.h in particular: conn->xmitsema, session->lock
    * Mike: remove the ISCSI_TRANSPORT_MAX limitation from the kernel using sysfs
    * updated to the recent transport class changes backward-compile-2.6.11.patch
    * fixed gcc4 compilation warnings
    * Mike: don't hold session->lock when deleting timer with del_timer_sync()
    * Mike: don't hold xmitsema while waiting for host_busy to decrement
    * Mike: deadlock fix: cannot call del_timer sync with session_lock held
    * propagating transport->caps up to the daemon, fixes DATA_DIGEST nego bug
    * adding max_conn, max_cmd_len and max_lun attributes for iscsi_transport
    * force eh_abort to unblock while in conn_destroy() waiting
    * fail host_reset() in case of session terminated
    * iscsiadm crash fix when transport capability does not match
    * connection struct: re-aligned Tx members with Tx, Rx with Rx
    * connection suspend: split Tx and Rx suspend, cleanup
    * fixed eh_abort/conn_stop() race: clear/set conn->sock under lock
    * removed restriction: sg element <= PAGE_SIZE
    * removed restriction: non scatter/gather request <= PAGE_SIZE


    1. iscsi-tcp.c.patch - drivers/scsi/iscsi_tcp.c, iscsi data path. This is ~3000
    lines 84K file, if it does not make it through, I'll split and resend. In
    addition, this file is available at

    2. iscsi-tcp.h.patch - drivers/scsi/iscsi_tcp.h, header file.

    3. common-iscsi-headers.patch - common header files:
    - iscsi_if.h (user/kernel #defines and user/kernel events);
    - iscsi_proto.h (RFC3720 #defines and types);
    - scsi_transport_iscsi.h (transport API, transport #defines and types).

    4. iscsi-netlink.patch - include/linux/netlink.h changes (added new protocol

    5. iscsi-Makefile.patch - drivers/scsi/Makefile changes.

    6. iscsi-transport.patch - new iscsi transport class

    7. iscsi-Kconfig.patch - drivers/scsi/Kconfig changes.


    Linux-iscsi Team

    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to
    More majordomo info at
    Please read the FAQ at

     \ /
      Last update: 2005-06-01 22:13    [W:0.043 / U:78.876 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site