Release 0.9.5 of both SCST and Qlogic target driver
[mirror/scst/.git] / scst / ChangeLog
1 Summary of changes between versions 0.9.4 and 0.9.5
2 ---------------------------------------------------
3
4  - Fixed many found task management related problems, especially in the
5    RESETs area. DEBUG_TM compilation option added (see README).
6
7  - Updated to work on kernels version 2.6.18+.
8
9  - FILEIO_ONLY added. If it's defined, there is no need to patch the
10    kernel, but pass-through modules (scst_disk, scst_tape, etc.) are not
11    supported).
12
13  - Fixed problems with big amount of LUNs (500+).
14
15  - Timer-based retries for targets after SCST_TGT_RES_QUEUE_FULL status
16    implemented.
17
18  - More intelligent IO flow control implemented.
19
20  - Fixed broken CDROM FILEIO. Before that it always reported 
21    "No medium found"
22
23  - Data synchronization fixes and improvements in FILEIO. Added FUA
24    support.
25
26  - Fixed READ(6)/WRITE(6) CDB decoding for block devices.
27    This bug prevented FreeBSD initiators from working.
28
29  - Implemented sgv_pool. It is mempool-like interface, which caches
30    built SG-vectors in order not to rebuild them again for every
31    subsequent command, so saves performance price of building
32    SG-vectors, including pages allocation, and of additional context
33    switches.
34
35  - For ABORTED commands xmit_response() now called. A target driver
36    should recognized such commands using new function
37    scst_cmd_aborted(). Also there are some other cleanups, improvements
38    and interfaces changes that affect target drivers and dev handlers.
39    You can find their full list by diff'ing scsi_tgt.h between versions
40    0.9.4 and 0.9.5.
41
42  - Function alloc_data_buf() added to struct scst_tgt_template as well
43    as data_buf_tgt_alloc added to struct scst_cmd to allow a target
44    driver implement own memory management handler (by Arne Redlich).
45
46  - Exported symbols are now not GPL'ed
47
48  - Various cleanups and a lot of bug fixes.
49
50 Summary of changes between versions 0.9.3 and 0.9.4
51 ---------------------------------------------------
52
53  - Support for 2.4 kernels has been removed
54
55  - Added on_free_cmd() callback for dev handlers
56
57  - Fixed BUG() on task aborts.
58
59  - Fixed WCE (Write Cache Enabled) handling in FILEIO (by Ming Zhang)
60
61  - Minor cleanups and bug fixes.
62
63 Summary of changes between versions 0.9.3-pre4 and 0.9.3
64 --------------------------------------------------------
65
66  - Fixed IO errors on initiators (return code 20008) under considerable
67    load, because of returned BUSY status. Now QUEUE FULL status returned
68    instead.
69
70  - Fixed "deadlock" on sessions creation.
71
72  - Fixed support for > 2TB storage device in FILEIO handler (by Ming Zhang)
73
74  - NULLIO added to FILEIO handler (by Ming Zhang)
75
76  - Commands serialization now per-(session, device), i.e. tgt_dev.
77
78  - Minor cleanups and bug fixes
79
80 Summary of changes between versions 0.9.3-pre2 and 0.9.3-pre4
81 -------------------------------------------------------------
82
83  - Sessions registration and unregistrations reimplemented. The
84    interface with target drivers changed (made much more simple, but
85    incompatible).
86
87  - Some kmalloc()'s converted to SLAB caches (by Nathaniel Clark)
88
89  - Too low timeouts for management operations in scst_disk were
90    increased
91
92  - Cleanups and bug fixes, including several race-based crashes
93
94 Summary of changes between versions 0.9.3-pre1 and 0.9.3-pre2
95 -------------------------------------------------------------
96
97  - Task management was considerably redone. Particularly, now the result
98    of ABORT TASK is returned to remote initiator immediately, except if
99    the result of the aborted command is already started to be sent.
100
101  - Per-session commands serialization implemented as part of "device
102    blocking" cleanup.
103
104  - UA generating after MODE SELECT and LOG SELECT implemented
105
106  - STRICT_SERIALIZING compile-time option added for those who need most
107    robust task management and willing to pay some performance cost for
108    that (see README)
109
110  - IRQ spinlocks were replaced by BH ones, where appropriate.
111
112  - Ability to change ISO image on the fly in CDROM FILEIO module added
113
114  - Cleanups and bug fixes
115
116 Summary of changes between versions 0.9.2 and 0.9.3-pre1
117 --------------------------------------------------------
118
119  - Sophisticated per-initiator access and devices visibility management added
120    (different initiators now could see different set of devices with
121    different permissions)
122
123  - FILEIO dev handler was reimplemented in most areas, including:
124
125     * Management interface via /proc added
126
127     * Various defects using devices/files larger 2Gb were fixed. Thanks
128       to Mark Buechler.
129
130     * New CDROM FILEIO handler added.
131
132     * Now per-session threads created to improve concurrent performance.
133  
134     * New flags added that allow using virtual devices as read only,
135       with write through caching or in O_DIRECT mode.
136
137     * Task management support added.
138
139  - RAID controller (type 0xC) dev handler added.
140
141  - SCSI processor (type 3) dev handler added.
142
143  - Sessions unregistration contexts cleanup.
144  
145  - Dev handler's on_free_cmd() was dropped. Target driver's flag 
146    "thread_per_session" was dropped as well.
147  
148  - Internal locking partially redone.
149  
150  - A lot of stability/bug fixes, cleanups and performance improvements.
151
152 Summary of changes between versions 0.9.1 and 0.9.2
153 ---------------------------------------------------
154
155  - 2.6 support, developed and tested on 2.6.7.
156  
157  - FILEIO/BLKDEV virtual disk device handler added. See main README for
158    details.
159  
160  - /proc updates, "trace_log_level" entry added to change traced
161    events on the fly.
162    
163  - Some internal interfaces changed, see the documentation.
164  
165  - Device handlers' source code layout changed, all device handlers
166    live in one subdirectory now.
167  
168  - Crash on memory allocation failure while building SG data vector
169    fixed.
170
171  - Other minor fixes
172
173 Summary of changes between versions 0.9.0a and 0.9.1
174 ----------------------------------------------------
175
176  - scst_debug.* files are also installed together with scsi_tgt.h
177    (required by QLA2x00 target and could be useful for other target
178    drivers)
179  
180  - CDB length for unknown commands (e.g. vendor ones) is now determined
181    from CDB
182    
183  - Race with the commands serialization on one drive fixed
184    
185  - Cleanup
186