mirror of
https://github.com/SCST-project/scst.git
synced 2026-05-28 09:20:18 +00:00
723 lines
28 KiB
Plaintext
723 lines
28 KiB
Plaintext
Summary of changes between versions 3.9 and 3.10
|
|
------------------------------------------------
|
|
- iscsi-scst: Added SHA256 and SHA3-256 support to CHAP, using AF_ALG and
|
|
negotiating algorithms during login.
|
|
- iscsi-scst: Added transport name to sysfs entries for connections.
|
|
- iscsi-scstd: Moved the PID file path to /run (instead of /var/run) for
|
|
better systemd compatibility; fixed GCC 15 build.
|
|
- scst: Fixed a possible command lockup by removing the lockless fast path in
|
|
scst_cmd_set_sn() and applying locking consistently.
|
|
- scst: Fixed an out-of-bounds read when parsing the SCSI CDB control byte for
|
|
vendor-specific / unknown-length opcodes; also fixed SCST_USER_PARSE_EXCEPTION
|
|
handling by treating negative generic_parse() errors as final.
|
|
- scst: Export scst_tgt->sg_tablesize via sysfs for target mode, matching what
|
|
is available in initiator mode via /sys/class/scsi_host/hostN/sg_tablesize.
|
|
- scst: Extended build metadata exposed in dmesg/sysfs/modinfo (kernel
|
|
version, build date, git hash, build number, arch).
|
|
- qla2x00t-32gbit driver: Significant reliability and safety updates (SRR/SLER
|
|
support reintroduced and improved; better abort/timeout handling; fixes for
|
|
TMR failure handling, lost interrupts, big CDB handling).
|
|
- qla2x00t-32gbit driver: Updated from Linux version v6.12 to v6.18.
|
|
- Improved Debian and RPM packaging.
|
|
|
|
The kernel versions supported by this release are:
|
|
* Kernel.org kernel versions v3.10..v6.18.
|
|
* Debian / Ubuntu kernels based on upstream kernel versions v3.10..v6.18.
|
|
* RHEL / CentOS / AlmaLinux 7.x, 8.0..8.10, 9.0..9.7 and 10.0..10.1 kernels.
|
|
* UEK version 4, 5, 6, 7 and 8 kernels.
|
|
|
|
Summary of changes between versions 3.8 and 3.9
|
|
-----------------------------------------------
|
|
- scst_vdisk: Added active attributes support to vdisk_fileio.
|
|
- iscsi-scst: Added a new link_local parameter to control whether link local
|
|
addresses are included in the IPv6 SendTargets response, preserving existing
|
|
behavior by including them.
|
|
- iscsi-scst: Added an internal_portal parameter to allow specified portals to
|
|
bypass CHAP controls for both discovery and target login, preserving the
|
|
existing behavior if unset.
|
|
- Fixed VPD inquiry handling for invalid LUNs. If the requested data cannot be
|
|
returned, the device now correctly terminates with CHECK CONDITION as per SPC-6.
|
|
- Eliminated per-device synchronize_rcu() calls in scst_sess_free_tgt_devs(),
|
|
significantly cutting cleanup time for large numbers of target devices.
|
|
- qla2x00t-32gbit driver: Updated from Linux kernel version v6.7 to v6.12.
|
|
|
|
The kernel versions supported by this release are:
|
|
* Kernel.org kernel versions v3.10..v6.12.
|
|
* Debian / Ubuntu kernels based on upstream kernel versions v3.10..v6.12.
|
|
* RHEL / CentOS / AlmaLinux 7.x, 8.0..8.9 and 9.0..9.5 kernels.
|
|
* UEK version 4, 5, 6 and 7 kernels.
|
|
|
|
Summary of changes between versions 3.7 and 3.8
|
|
-----------------------------------------------
|
|
- Fixed depmod warnings during the installation process.
|
|
- Resolved RPM build issues for Fedora and CentOS Stream kernels.
|
|
- Introduced selectable debug mode levels during package building by passing
|
|
PKG_BUILD_MODE=2[release, debug, perf] as an argument to make.
|
|
- scst_disk: Implemented cluster mode support.
|
|
- scst_vdisk: Introduced the lb_per_pb_exp attribute, allowing control over
|
|
whether READ CAPACITY 16 returns LOGICAL BLOCKS PER PHYSICAL BLOCK EXPONENT.
|
|
- scst_vdisk: Enabled exclusive opening of block devices to prevent
|
|
concurrent usage.
|
|
- iscsi-scst: Implemented iSCSI TargetAlias support.
|
|
- iscsi-scstd: Added initiator name validation during login.
|
|
- Added the aen_disabled attribute, enabling forcible UA sending instead of
|
|
AEN from the target port.
|
|
- Fixed UNIT ATTENTION for remote PR registrants.
|
|
- Enhanced device blocking to ensure signal-induced waiting cancellation does
|
|
not crash the system.
|
|
- Corrected the display of the number of active commands during suspending.
|
|
- qla2x00t-32gbit driver: Rectified ABORT_TASK_SET processing.
|
|
- qla2x00t-32gbit driver: Updated from Linux kernel version v5.15 to v6.7.
|
|
|
|
The kernel versions supported by this release are:
|
|
* Kernel.org kernel versions v3.10..v6.7.
|
|
* Debian / Ubuntu kernels based on upstream kernel versions v3.10..v6.7.
|
|
* RHEL / CentOS / AlmaLinux 7.x, 8.0..8.9 and 9.0..9.3 kernels.
|
|
* UEK version 4, 5, 6 and 7 kernels.
|
|
|
|
Summary of changes between versions 3.6 and 3.7
|
|
-----------------------------------------------
|
|
- The SCST event subsystem works again reliably.
|
|
- Fixed a race condition when replacing a LUN under load.
|
|
- Fixed handling of INQUIRY/SENSE commands that comes with buffer size 0.
|
|
- The behavior of the on_alua_state_change_*() callback functions has been
|
|
fixed such that these are also invoked for devices that are not in any
|
|
target.
|
|
- Error handling for iscsi-scst has been improved such that data sending
|
|
failure no longer crashes the system.
|
|
- An improvement has been added to iscsi-scstd to allow multiple addresses to
|
|
be specified for the server to listen on.
|
|
- Fixed a hang when unregistering a SCST device due to incorrect device
|
|
reference counter management in copy manager.
|
|
- Fixed copy manager device update (for auto_cm_assignment=1) such that it no
|
|
longer corrupts the designator list.
|
|
- Support for scst_tgt_template detect() method has been dropped. This method
|
|
was declared obsolete in 2015.
|
|
- The scst_user device handler has been made compatible with the
|
|
qla2x00t-32gbit driver.
|
|
- qla2x00t-32gbit driver: NPIV support has been improved.
|
|
- qla2x00t-32gbit driver: Target mode usage has been simplified by changing
|
|
the default qlini_mode to exclusive.
|
|
- qla2x00t-32gbit driver: Updated from Linux kernel version v5.15 to v6.1.
|
|
|
|
The kernel versions supported by this release are:
|
|
* Kernel.org kernel versions v3.10..v6.1.
|
|
* Debian / Ubuntu kernels based on upstream kernel versions v3.10..v6.1.
|
|
* RHEL / CentOS / AlmaLinux 7.x, 8.0..8.7 and 9.0..9.1 kernels.
|
|
* UEK version 4, 5, 6 and 7 kernels.
|
|
|
|
Summary of changes between versions 3.5 and 3.6
|
|
-----------------------------------------------
|
|
- Made the command processing path slightly faster by removing two atomic
|
|
instructions from the command processing path.
|
|
- Added support for the READ and WRITE DYN RUNTIME ATTR commands and also
|
|
for SERVICE ACTION IN(12).
|
|
- An infinite loop in the code that sets CHECK CONDITION has been fixed.
|
|
- A deadlock has been fixed in the code for assigning a device handler to a
|
|
vdisk.
|
|
- Support for adding a vdisk_blockio device with a non-existent filename has
|
|
been restored.
|
|
- The async mode of vdisk_fileio has been made compatible with filesystems that
|
|
use the iomap code, e.g. XFS.
|
|
- A "INFO: rcu_sched self-detected stall" issue has been fixed.
|
|
- Support in the copy manager for auto_cm_assignment=0 has been fixed.
|
|
- Standards-compliance of the copy manager has been improved. Designators with
|
|
a length above 20 bytes are now rejected instead of being accepted.
|
|
- The copy manager no longer suspends activity when adding a LUN.
|
|
- A bug has been fixed in the vdisk resync_size functionality.
|
|
- The tape device handler now sets 'block_shift' correctly.
|
|
- Improved the code for building a Debian package (dpkg).
|
|
- scst_local: the SCSI host number is now available in sysfs.
|
|
- scst-isert: this driver has been made compatible with
|
|
CONFIG_HARDENED_USERCOPY.
|
|
- scst-isert: support for RDMA_CV_EVENT_ADDR_CHANGE has been added.
|
|
- scst-isert: a hang in iscsi_release() has been fixed.
|
|
- The top-level Makefile has been modified such that the qla2x00t-32gbit driver
|
|
is built by default instead of the qla2x00t driver. The qla2x00t driver can
|
|
be selected by passing QLA_32GBIT=no as argument to make.
|
|
- qla2x00t-32gbit driver: updated from Linux kernel version v5.10 to v5.15.
|
|
- scstadmin: the -force option is now passed to removeGroup().
|
|
- scstadmin: improved performance of the scstadmin function make_path().
|
|
|
|
The kernel versions supported by this release are:
|
|
* Kernel.org kernel versions v3.10..v5.15.
|
|
* Debian / Ubuntu kernels based on upstream kernel versions v3.10..v5.15.
|
|
* RHEL / CentOS 7.x and 8.0..8.5 kernels.
|
|
* UEK version 6, 7 and 8 kernels.
|
|
|
|
Summary of changes between versions 3.4 and 3.5
|
|
-----------------------------------------------
|
|
- Added the forward_src and forward_dst sysfs attributes. Removed
|
|
CONFIG_SCST_FORWARD_MODE_PASS_THROUGH. In other words, forward_src mode
|
|
is no longer global but is now configurable per target port.
|
|
- Improved forwarding of SCSI commands between H.A. nodes. The relative
|
|
target port ID is now correct in the device identification inquiry response.
|
|
The REPORT TARGET PORT GROUPS and SET TARGET PORT GROUPS commands are now
|
|
processed locally instead of being forwarded.
|
|
- A subtle bug in the COMPARE AND WRITE implementation for unaligned buffers
|
|
has been fixed (r8932).
|
|
- Support for wildcard matching for initiator names has been added to the
|
|
copy manager.
|
|
- Unloading scst_vdisk while I/O is ongoing works again reliably.
|
|
- Support for scst_register_target(..., NULL) has been dropped. This feature
|
|
was declared obsolete in 2011.
|
|
- The behavior of the on_alua_state_change_*() callback functions has been
|
|
modified such that these are only invoked if the state of a local target
|
|
port group is being modified.
|
|
- The RPM build gained support for EL mainline kernels and also for CentOSPlus.
|
|
- Performance of the ib_srpt driver has been improved by switching from a large
|
|
number of kernel threads to one workqueue per CPU core.
|
|
- Support for MOFED 5 has been added in the isert-scst and ib_srpt drivers.
|
|
- Network namespace support has been added in the iscsi-scst driver. This makes
|
|
it possible to run iscsi-scst inside a container that uses another network
|
|
namespace than the default.
|
|
- Fixed a hard to trigger race condition in the iSCSI connection shutdown code.
|
|
- Fixed a memory leak in conn_free() in iscsi-scstd.
|
|
- Large RDMA transfers no longer trigger QP termination with the ib_srpt driver.
|
|
- Handling of iWARP logins has been fixed in ib_srpt.
|
|
- Added a new driver, qla2x00t-32gbit, that supports 32 Gb/s QLogic FC adapters.
|
|
- Updated the qla2x00t-32gbit to the version that is available in Linux kernel
|
|
v5.9 from v5.4.
|
|
- The scst_user device handler has been made compatible with the ib_srpt
|
|
zero-copy mode.
|
|
- scstadmin has been made compatible again with older Perl interpreters.
|
|
|
|
The kernel versions supported by this release are:
|
|
* Kernel.org kernel versions v2.6.31..v5.10.
|
|
* Debian / Ubuntu kernels based on upstream kernel versions v2.6.31..v5.10.
|
|
* RHEL / CentOS 6.x, 7.x and 8.0..8.3 kernels.
|
|
* UEK version 4, 5 and 6 kernels.
|
|
|
|
Summary of changes between versions 3.3 and 3.4
|
|
-----------------------------------------------
|
|
- I/O keeps running at full speed if a LUN is added or removed and also if
|
|
a device is added or removed.
|
|
- Added support for asynchronous zero-copy file I/O. This change improves
|
|
vdisk_fileio performance significantly. See also the documentation of the
|
|
'async' and 'o_direct' attributes.
|
|
- Added support for the SCSI WRITE AND VERIFY command.
|
|
- Reworked the build infrastructure such that switching between debug, release
|
|
and perf modes is now much faster.
|
|
- Dropped support for RHEL 5.
|
|
- Dropped support for procfs.
|
|
- Dropped support for I/O context sharing. This mechanism improved CFQ
|
|
performance.
|
|
- Fixed a number of small bugs.
|
|
|
|
Summary of changes between versions 3.2 and 3.3
|
|
-----------------------------------------------
|
|
- Support for a new build method ("make dpkg").
|
|
- Support for the latest kernels has been added, up to and including
|
|
Linux kernel v4.19.
|
|
- A much more powerful latency measurement infrastructure has been added.
|
|
- Support for asynchronous buffered and direct I/O has been added to scst_vdisk.
|
|
- H.A. support has been improved.
|
|
- SCSI pass-through support is now compatible with Linux kernel versions 4.11
|
|
and later.
|
|
- ACA support has been added.
|
|
- The scst_user driver is now compatible with usercopy hardening.
|
|
- "make install" is now compatible with SELinux.
|
|
|
|
Summary of changes between versions 3.1 and 3.2
|
|
-----------------------------------------------
|
|
- Updated SCST to SPC-4.
|
|
- Added the CONFIG_SCST_FORWARD_MODE_PASS_THROUGH mode.
|
|
- Added support for command polling. See also the poll_us attribute.
|
|
- ib_srpt: Added link_layer and port_id sysfs attributes.
|
|
- ib_srpt: Reduced CPU load caused by stopping a large number of sessions.
|
|
- isert: Fixed multiple bugs.
|
|
- scstadmin gained support for saving and restoring copy manager attributes.
|
|
- scstadmin -attributes behavior for multiple attributes has been fixed.
|
|
- scstadmin no longer tries to save the dif_checks_failed counter.
|
|
|
|
Summary of changes between versions 3.0 and 3.1
|
|
-----------------------------------------------
|
|
- vdisk_nullio: the "read_zero" attribute has been added.
|
|
- scst_vdisk: LBPRZ now follows limits.discard_zeroes_data.
|
|
- scst core: support for 64-bit LUNs has been added. This requires a Linux
|
|
kernel that supports 64-bit LUNs.
|
|
- A new kernel module parameter, scst_forcibly_close_sessions, controls whether
|
|
or not attempting to remove an access control group with one or more active
|
|
sessions succeeds or fails with -EBUSY.
|
|
- scst_vdisk: the EUI-64 and NAA IDs are now configurable.
|
|
- scst_vdisk: the device name length has been increased from 16 to 64
|
|
characters for OpenStack.
|
|
- The SCSI-passthrough code has been reworked such that SCSI pass-through
|
|
works with kernel versions >= 2.6.30 without patching the kernel.
|
|
- T10-PI support has been added to the SCST core.
|
|
- Counters have been added to keep track of unaligned I/O.
|
|
- The "forwarding" sysfs attribute has been added.
|
|
- Support for iSER has been added.
|
|
- SCST command thread creation has been made faster.
|
|
- Support for synchronizing persistent reservation information between cluster
|
|
nodes via the DLM has been added.
|
|
- Explicit ALUA support has been added.
|
|
- EXTENDED COPY support has been added.
|
|
|
|
Summary of changes between versions 2.1.0 and 3.0
|
|
-------------------------------------------------
|
|
|
|
- Update to kernels up to 3.3
|
|
|
|
- Zero copy read side FILEIO implemented
|
|
|
|
- New initialization scripts implemented
|
|
|
|
- Support for rotational attribute added
|
|
|
|
- Bug fixes and other improvements
|
|
|
|
|
|
Summary of changes between versions 2.0.0 and 2.1.0
|
|
---------------------------------------------------
|
|
|
|
- Update to kernels up to 3.0
|
|
|
|
- Support for implicit ALUA added
|
|
|
|
- Change T10 ID and USN generations to get the random part be CRC32
|
|
from the device name in the first 8 characters as many MPIO
|
|
implementations expect
|
|
|
|
- Assigning CPU affinity to threads and connections added
|
|
|
|
- Splitting of read/write CDBs for pass-through devices with sg_tablesize
|
|
and max_sectors limitations added to scst_disk
|
|
|
|
- Support for thin provisioning commands added in scst_vdisk
|
|
|
|
- Fix possible incorrect atomic context on exec stages
|
|
|
|
- Limit max tasklet commands via scst_max_tasklet_cmd global attribute
|
|
to prevent possible starvation under heavy load and in some cases
|
|
improve performance
|
|
|
|
- Autogenerated SCST target names made deprecated
|
|
|
|
- Custom parse improvements
|
|
|
|
- Logging improvements
|
|
|
|
- Bug fixes and other improvements
|
|
|
|
|
|
Summary of changes between versions 1.0.1 and 1.0.2
|
|
---------------------------------------------------
|
|
|
|
- Support for bidirectional transfers added
|
|
|
|
- REQUEST SENSE now can return the most recent sense
|
|
|
|
- READ CAPACITY(16) now reports number of logical blocks per physical
|
|
block
|
|
|
|
- Parameters scst_max_cmd_mem and scst_max_dev_cmd_mem as well as
|
|
vdisk's parameters num_threads and scst_vdisk_ID made visible through
|
|
/sys/module/scst and /sys/module/scst_vdisk correspondingly
|
|
|
|
- Shared between devices SGV caches were implemented
|
|
|
|
- Possibilities to operate with single size entries as well as control of
|
|
the reclamation time added to the SGV cache
|
|
|
|
- Issues cased by change of cdb_len to unsigned fixed.
|
|
|
|
- INIT ELEMENT STATUS WRANGE added to the list of known commands.
|
|
|
|
- Races on scst_user devices cleanup fixed
|
|
|
|
- Implemented abort on timeout of stuck in tgt hardware commands
|
|
|
|
- Automatic sessions reassignment implemented with corresponding atomic
|
|
management commands added
|
|
|
|
- Generation of INQUIRY DATA HAS CHANGED Unit Attention or AEN for
|
|
changed devices during automatic sessions reassignment added
|
|
|
|
- Requeue global Unit Attentions on delivery failure added
|
|
|
|
- Update for 2.6.30
|
|
|
|
- Other bug fixes and cleanups
|
|
|
|
|
|
Summary of changes 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 Async. 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
|
|
changed
|
|
|
|
- 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
|
|
now.
|
|
|
|
- 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.
|
|
|
|
- Depecated 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 between versions 0.9.5 and 1.0.0
|
|
---------------------------------------------------
|
|
|
|
- Added per-device memory limit and new scst.ko module parameter scst_max_dev_cmd_mem
|
|
|
|
- Sending REQUEST SENSE fixed
|
|
|
|
- Fixed possible incorrect command's retry if double RESET UA is detected.
|
|
|
|
- Fixed __exit misuse, when such functions called from __init functions.
|
|
|
|
- "RECEIVE DIAGNOSTIC RESULTS" command handling fixed
|
|
|
|
- Obtaining device queue parameters in scst_obtain_device_parameters()
|
|
changed to handle NOT READY sense
|
|
|
|
- Added possibility to create virtual removable devices
|
|
|
|
- Updated to work on 2.6.25.x
|
|
|
|
- Fixed READ POSITION command handling
|
|
|
|
- TM processing made independent from other TM commands (before it was serialized)
|
|
|
|
- Sense buffer made dynamic
|
|
|
|
- Clustering statistic added
|
|
|
|
- Updated to work on 2.6.24.x
|
|
|
|
- Version protection added
|
|
|
|
- Processing latency measurement facility added
|
|
|
|
- Sessions registration/unregistration made independent from other activities
|
|
|
|
- Major performance improvements
|
|
|
|
- Major task management handling improvements
|
|
|
|
- Updated to work on 2.6.23.x
|
|
|
|
- Switching between debug<->performance<->release builds added
|
|
|
|
- scsi_tgt renamed to scst, scsi_tgt.h renamed to scst.h
|
|
|
|
- Updated to work on 2.6.22.x
|
|
|
|
- Semaphores converted to mutexes
|
|
|
|
- 64-bit platform cleanups
|
|
|
|
- Added limit on maximum queued on a device commands
|
|
|
|
- Threads made per-device
|
|
|
|
- User space device handler added
|
|
|
|
- New SGV cache low memory management backend with memory flow control
|
|
facility was implemented, thanks to Krzysztof Blaszkowski.
|
|
|
|
- FILEIO was renamed to VDISK. BLOCKIO added to it, thanks to Ross S. W.
|
|
Walker and Vu Pham.
|
|
|
|
- Updated to work on 2.6.20.x, no update for 2.6.21.x isn't needed
|
|
|
|
- Internal locking and execution context were reimplemnted. As some of
|
|
the results now FILEIO has >1 IO threads and implemented full support
|
|
for SCSI task attributes (SIMPLE, ORDERED, etc.).
|
|
|
|
- Ability to have per-target default security groups added.
|
|
|
|
- Updated to work on 2.6.19.x, thanks to Ming Zhang.
|
|
|
|
- Internal threads management reimplemented based on kthread*() API,
|
|
thanks to Ming Zhang.
|
|
|
|
- /proc implementation moved to seq_*() library, thanks to Ming Zhang.
|
|
Target drivers need to be updated accordingly.
|
|
|
|
- Linear search in the LUN translation routines scst_translate_lun()
|
|
and scst_mgmt_translate_lun() was changed to a hash-based one.
|
|
|
|
- Building from the Linux kernel tree updated, inside kernel building fixed.
|
|
|
|
- Support for CPU cache flushing before doing DMA to target devices added.
|
|
|
|
- A lot of cleanups, bug fixes and improvements.
|
|
|
|
Summary of changes between versions 0.9.4 and 0.9.5
|
|
---------------------------------------------------
|
|
|
|
- Fixed many found task management related problems, especially in the
|
|
RESETs area. CONFIG_SCST_DEBUG_TM compilation option added (see README).
|
|
|
|
- Updated to work on kernels version 2.6.18+.
|
|
|
|
- FILEIO_ONLY added. If it's defined, there is no need to patch the
|
|
kernel, but pass-through modules (scst_disk, scst_tape, etc.) are not
|
|
supported).
|
|
|
|
- Fixed problems with big amount of LUNs (500+).
|
|
|
|
- Timer-based retries for targets after SCST_TGT_RES_QUEUE_FULL status
|
|
implemented.
|
|
|
|
- More intelligent IO flow control implemented.
|
|
|
|
- Fixed broken CDROM FILEIO. Before that it always reported
|
|
"No medium found"
|
|
|
|
- Data synchronization fixes and improvements in FILEIO. Added FUA
|
|
support.
|
|
|
|
- Fixed READ(6)/WRITE(6) CDB decoding for block devices.
|
|
This bug prevented FreeBSD initiators from working.
|
|
|
|
- Implemented sgv_pool. It is mempool-like interface, which caches
|
|
built SG-vectors in order not to rebuild them again for every
|
|
subsequent command, so saves performance price of building
|
|
SG-vectors, including pages allocation, and of additional context
|
|
switches.
|
|
|
|
- For ABORTED commands xmit_response() now called. A target driver
|
|
should recognized such commands using new function
|
|
scst_cmd_aborted(). Also there are some other cleanups, improvements
|
|
and interfaces changes that affect target drivers and dev handlers.
|
|
You can find their full list by diff'ing scsi_tgt.h between versions
|
|
0.9.4 and 0.9.5.
|
|
|
|
- Function alloc_data_buf() added to struct scst_tgt_template as well
|
|
as data_buf_tgt_alloc added to struct scst_cmd to allow a target
|
|
driver implement own memory management handler (by Arne Redlich).
|
|
|
|
- Exported symbols are now not GPL'ed
|
|
|
|
- Various cleanups and a lot of bug fixes.
|
|
|
|
Summary of changes between versions 0.9.3 and 0.9.4
|
|
---------------------------------------------------
|
|
|
|
- Support for 2.4 kernels has been removed
|
|
|
|
- Added on_free_cmd() callback for dev handlers
|
|
|
|
- Fixed BUG() on task aborts.
|
|
|
|
- Fixed WCE (Write Cache Enabled) handling in FILEIO (by Ming Zhang)
|
|
|
|
- Minor cleanups and bug fixes.
|
|
|
|
Summary of changes between versions 0.9.3-pre4 and 0.9.3
|
|
--------------------------------------------------------
|
|
|
|
- Fixed IO errors on initiators (return code 20008) under considerable
|
|
load, because of returned BUSY status. Now QUEUE FULL status returned
|
|
instead.
|
|
|
|
- Fixed "deadlock" on sessions creation.
|
|
|
|
- Fixed support for > 2TB storage device in FILEIO handler (by Ming Zhang)
|
|
|
|
- NULLIO added to FILEIO handler (by Ming Zhang)
|
|
|
|
- Commands serialization now per-(session, device), i.e. tgt_dev.
|
|
|
|
- Minor cleanups and bug fixes
|
|
|
|
Summary of changes between versions 0.9.3-pre2 and 0.9.3-pre4
|
|
-------------------------------------------------------------
|
|
|
|
- Sessions registration and unregistrations reimplemented. The
|
|
interface with target drivers changed (made much more simple, but
|
|
incompatible).
|
|
|
|
- Some kmalloc()'s converted to SLAB caches (by Nathaniel Clark)
|
|
|
|
- Too low timeouts for management operations in scst_disk were
|
|
increased
|
|
|
|
- Cleanups and bug fixes, including several race-based crashes
|
|
|
|
Summary of changes between versions 0.9.3-pre1 and 0.9.3-pre2
|
|
-------------------------------------------------------------
|
|
|
|
- Task management was considerably redone. Particularly, now the result
|
|
of ABORT TASK is returned to remote initiator immediately, except if
|
|
the result of the aborted command is already started to be sent.
|
|
|
|
- Per-session commands serialization implemented as part of "device
|
|
blocking" cleanup.
|
|
|
|
- UA generating after MODE SELECT and LOG SELECT implemented
|
|
|
|
- CONFIG_SCST_STRICT_SERIALIZING compile-time option added for those who need
|
|
the most robust task management and willing to pay some performance cost for
|
|
that (see README)
|
|
|
|
- IRQ spinlocks were replaced by BH ones, where appropriate.
|
|
|
|
- Ability to change ISO image on the fly in CDROM FILEIO module added
|
|
|
|
- Cleanups and bug fixes
|
|
|
|
Summary of changes between versions 0.9.2 and 0.9.3-pre1
|
|
--------------------------------------------------------
|
|
|
|
- Sophisticated per-initiator access and devices visibility management added
|
|
(different initiators now could see different set of devices with
|
|
different permissions)
|
|
|
|
- FILEIO dev handler was reimplemented in most areas, including:
|
|
|
|
* Management interface via /proc added
|
|
|
|
* Various defects using devices/files larger 2Gb were fixed. Thanks
|
|
to Mark Buechler.
|
|
|
|
* New CDROM FILEIO handler added.
|
|
|
|
* Now per-session threads created to improve concurrent performance.
|
|
|
|
* New flags added that allow using virtual devices as read only,
|
|
with write through caching or in O_DIRECT mode.
|
|
|
|
* Task management support added.
|
|
|
|
- RAID controller (type 0xC) dev handler added.
|
|
|
|
- SCSI processor (type 3) dev handler added.
|
|
|
|
- Sessions unregistration contexts cleanup.
|
|
|
|
- Dev handler's on_free_cmd() was dropped. Target driver's flag
|
|
"thread_per_session" was dropped as well.
|
|
|
|
- Internal locking partially redone.
|
|
|
|
- A lot of stability/bug fixes, cleanups and performance improvements.
|
|
|
|
Summary of changes between versions 0.9.1 and 0.9.2
|
|
---------------------------------------------------
|
|
|
|
- 2.6 support, developed and tested on 2.6.7.
|
|
|
|
- FILEIO/BLKDEV virtual disk device handler added. See main README for
|
|
details.
|
|
|
|
- /proc updates, "trace_log_level" entry added to change traced
|
|
events on the fly.
|
|
|
|
- Some internal interfaces changed, see the documentation.
|
|
|
|
- Device handlers' source code layout changed, all device handlers
|
|
live in one subdirectory now.
|
|
|
|
- Crash on memory allocation failure while building SG data vector
|
|
fixed.
|
|
|
|
- Other minor fixes
|
|
|
|
Summary of changes between versions 0.9.0a and 0.9.1
|
|
----------------------------------------------------
|
|
|
|
- scst_debug.* files are also installed together with scsi_tgt.h
|
|
(required by QLA2x00 target and could be useful for other target
|
|
drivers)
|
|
|
|
- CDB length for unknown commands (e.g. vendor ones) is now determined
|
|
from CDB
|
|
|
|
- Race with the commands serialization on one drive fixed
|
|
|
|
- Cleanup
|