8f203cab6b5da6b6a1d9167721d66124d4bfc449
[mirror/scst/.git] / scst / ChangeLog
1 Summary of changes between versions 1.0.0 and 1.0.1
2 ---------------------------------------------------
3
4  - Update for 2.6.26
5
6  - Minor fixes and cleanups
7
8
9 Summary of changes between versions 0.9.5 and 1.0.0
10 ---------------------------------------------------
11
12  - Added per-device memory limit and new scst.ko module parameter scst_max_dev_cmd_mem
13
14  - Sending REQUEST SENSE fixed
15
16  - Fixed possible incorrect command's retry if double RESET UA is detected.
17
18  - Fixed __exit misuse, when such functions called from __init functions.
19
20  - "RECEIVE DIAGNOSTIC RESULTS" command handling fixed
21
22  - Obtaining device queue parameters in scst_obtain_device_parameters()
23    changed to handle NOT READY sense
24
25  - Added possibility to create virtual removable devices
26
27  - Updated to work on 2.6.25.x
28
29  - Fixed READ POSITION command handling
30
31  - TM processing made independant from other TM commands (before it was serialized)
32
33  - Sense buffer made dynamic
34
35  - Clustering statistic added
36
37  - Updated to work on 2.6.24.x
38
39  - Version protection added
40
41  - Processing latency measurement facility added
42
43  - Sessions registration/unregistration made independant from other activities
44
45  - Major performance improvements
46
47  - Major task management handling improvements
48
49  - Updated to work on 2.6.23.x
50
51  - Switching between debug<->performance<->release builds added
52
53  - scsi_tgt renamed to scst, scsi_tgt.h renamed to scst.h
54
55  - Updated to work on 2.6.22.x
56
57  - Semaphores converted to mutexes
58
59  - 64-bit platform cleanups
60
61  - Added limit on maximum queued on a device commands
62
63  - Threads made per-device
64
65  - User space device handler added
66
67  - New SGV cache low memory management backend with memory flow control
68    facility was implemented, thanks to Krzysztof Blaszkowski.
69
70  - FILEIO was renamed to VDISK. BLOCKIO added to it, thanks to Ross S. W.
71    Walker and Vu Pham.
72
73  - Updated to work on 2.6.20.x, no update for 2.6.21.x isn't needed
74
75  - Internal locking and execution context were reimplemnted. As some of
76    the results now FILEIO has >1 IO threads and implemented full support
77    for SCSI task attributes (SIMPLE, ORDERED, etc.).
78
79  - Ability to have per-target default security groups added.
80
81  - Updated to work on 2.6.19.x, thanks to Ming Zhang.
82
83  - Internal threads management reimplemented based on kthread*() API,
84    thanks to Ming Zhang.
85
86  - /proc implementation moved to seq_*() library, thanks to Ming Zhang.
87    Target drivers need to be updated accordingly.
88
89  - Linear search in the LUN translation routines scst_translate_lun()
90    and scst_mgmt_translate_lun() was changed to a hash-based one, thanks
91    to Michael G. Byrnes.
92
93  - Building from the Linux kernel tree updated, inside kernel building fixed.
94
95  - Support for CPU cache flushing before doing DMA to target devices added.
96
97  - A lot of cleanups, bug fixes and improvements.
98
99 Summary of changes between versions 0.9.4 and 0.9.5
100 ---------------------------------------------------
101
102  - Fixed many found task management related problems, especially in the
103    RESETs area. CONFIG_SCST_DEBUG_TM compilation option added (see README).
104
105  - Updated to work on kernels version 2.6.18+.
106
107  - FILEIO_ONLY added. If it's defined, there is no need to patch the
108    kernel, but pass-through modules (scst_disk, scst_tape, etc.) are not
109    supported).
110
111  - Fixed problems with big amount of LUNs (500+).
112
113  - Timer-based retries for targets after SCST_TGT_RES_QUEUE_FULL status
114    implemented.
115
116  - More intelligent IO flow control implemented.
117
118  - Fixed broken CDROM FILEIO. Before that it always reported 
119    "No medium found"
120
121  - Data synchronization fixes and improvements in FILEIO. Added FUA
122    support.
123
124  - Fixed READ(6)/WRITE(6) CDB decoding for block devices.
125    This bug prevented FreeBSD initiators from working.
126
127  - Implemented sgv_pool. It is mempool-like interface, which caches
128    built SG-vectors in order not to rebuild them again for every
129    subsequent command, so saves performance price of building
130    SG-vectors, including pages allocation, and of additional context
131    switches.
132
133  - For ABORTED commands xmit_response() now called. A target driver
134    should recognized such commands using new function
135    scst_cmd_aborted(). Also there are some other cleanups, improvements
136    and interfaces changes that affect target drivers and dev handlers.
137    You can find their full list by diff'ing scsi_tgt.h between versions
138    0.9.4 and 0.9.5.
139
140  - Function alloc_data_buf() added to struct scst_tgt_template as well
141    as data_buf_tgt_alloc added to struct scst_cmd to allow a target
142    driver implement own memory management handler (by Arne Redlich).
143
144  - Exported symbols are now not GPL'ed
145
146  - Various cleanups and a lot of bug fixes.
147
148 Summary of changes between versions 0.9.3 and 0.9.4
149 ---------------------------------------------------
150
151  - Support for 2.4 kernels has been removed
152
153  - Added on_free_cmd() callback for dev handlers
154
155  - Fixed BUG() on task aborts.
156
157  - Fixed WCE (Write Cache Enabled) handling in FILEIO (by Ming Zhang)
158
159  - Minor cleanups and bug fixes.
160
161 Summary of changes between versions 0.9.3-pre4 and 0.9.3
162 --------------------------------------------------------
163
164  - Fixed IO errors on initiators (return code 20008) under considerable
165    load, because of returned BUSY status. Now QUEUE FULL status returned
166    instead.
167
168  - Fixed "deadlock" on sessions creation.
169
170  - Fixed support for > 2TB storage device in FILEIO handler (by Ming Zhang)
171
172  - NULLIO added to FILEIO handler (by Ming Zhang)
173
174  - Commands serialization now per-(session, device), i.e. tgt_dev.
175
176  - Minor cleanups and bug fixes
177
178 Summary of changes between versions 0.9.3-pre2 and 0.9.3-pre4
179 -------------------------------------------------------------
180
181  - Sessions registration and unregistrations reimplemented. The
182    interface with target drivers changed (made much more simple, but
183    incompatible).
184
185  - Some kmalloc()'s converted to SLAB caches (by Nathaniel Clark)
186
187  - Too low timeouts for management operations in scst_disk were
188    increased
189
190  - Cleanups and bug fixes, including several race-based crashes
191
192 Summary of changes between versions 0.9.3-pre1 and 0.9.3-pre2
193 -------------------------------------------------------------
194
195  - Task management was considerably redone. Particularly, now the result
196    of ABORT TASK is returned to remote initiator immediately, except if
197    the result of the aborted command is already started to be sent.
198
199  - Per-session commands serialization implemented as part of "device
200    blocking" cleanup.
201
202  - UA generating after MODE SELECT and LOG SELECT implemented
203
204  - CONFIG_SCST_STRICT_SERIALIZING compile-time option added for those who need
205    the most robust task management and willing to pay some performance cost for
206    that (see README)
207
208  - IRQ spinlocks were replaced by BH ones, where appropriate.
209
210  - Ability to change ISO image on the fly in CDROM FILEIO module added
211
212  - Cleanups and bug fixes
213
214 Summary of changes between versions 0.9.2 and 0.9.3-pre1
215 --------------------------------------------------------
216
217  - Sophisticated per-initiator access and devices visibility management added
218    (different initiators now could see different set of devices with
219    different permissions)
220
221  - FILEIO dev handler was reimplemented in most areas, including:
222
223     * Management interface via /proc added
224
225     * Various defects using devices/files larger 2Gb were fixed. Thanks
226       to Mark Buechler.
227
228     * New CDROM FILEIO handler added.
229
230     * Now per-session threads created to improve concurrent performance.
231  
232     * New flags added that allow using virtual devices as read only,
233       with write through caching or in O_DIRECT mode.
234
235     * Task management support added.
236
237  - RAID controller (type 0xC) dev handler added.
238
239  - SCSI processor (type 3) dev handler added.
240
241  - Sessions unregistration contexts cleanup.
242  
243  - Dev handler's on_free_cmd() was dropped. Target driver's flag 
244    "thread_per_session" was dropped as well.
245  
246  - Internal locking partially redone.
247  
248  - A lot of stability/bug fixes, cleanups and performance improvements.
249
250 Summary of changes between versions 0.9.1 and 0.9.2
251 ---------------------------------------------------
252
253  - 2.6 support, developed and tested on 2.6.7.
254  
255  - FILEIO/BLKDEV virtual disk device handler added. See main README for
256    details.
257  
258  - /proc updates, "trace_log_level" entry added to change traced
259    events on the fly.
260    
261  - Some internal interfaces changed, see the documentation.
262  
263  - Device handlers' source code layout changed, all device handlers
264    live in one subdirectory now.
265  
266  - Crash on memory allocation failure while building SG data vector
267    fixed.
268
269  - Other minor fixes
270
271 Summary of changes between versions 0.9.0a and 0.9.1
272 ----------------------------------------------------
273
274  - scst_debug.* files are also installed together with scsi_tgt.h
275    (required by QLA2x00 target and could be useful for other target
276    drivers)
277  
278  - CDB length for unknown commands (e.g. vendor ones) is now determined
279    from CDB
280    
281  - Race with the commands serialization on one drive fixed
282    
283  - Cleanup
284