mirror of
https://github.com/SCST-project/scst.git
synced 2026-05-14 09:11:27 +00:00
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5320 d57e44dd-8a1f-0410-8b47-8ef2f437770f
468 lines
15 KiB
Plaintext
468 lines
15 KiB
Plaintext
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 changable 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 independant 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 independant 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
|
|
|