Small ORDERED commands handling optimization
[mirror/scst/.git] / scst / ToDo
1 To be done
2 ----------
3
4  - Kernel build integration (patch).
5
6  - Reimplement FILEIO handler with usage of async. read/write operations
7    (in order to avoid unnecessary context switches) and direct access to
8    the page cache (in order to avoid data copy between it and internal
9    buffers). Requires modifications of the kernel.
10
11  - O_DIRECT mode doesn't work (oops'es somewhere in the kernel)
12  
13  - Close integration with Linux initiator SCSI mil-level, including 
14    queue types (simple, ordered, etc.) and local initiators (sd, st, sg,
15    etc.) support. Requires modifications of the kernel.
16
17  - Improve task management and Unit Attention conditions handling
18    using ACA in order to make them always reliable. Honoring NACA, QErr,
19    TST, UA_INTLCK_CTRL bits. Requires deep modifications of the kernel.
20  
21  - Move linear searches to hash-table based.
22  
23  - Create dev handler for block devices, which would insert commands as
24    block requests in the device's block queue, so they would processed
25    by IO-scheduler then.
26
27  - Redone some semaphores with completion interface.
28
29  - HIGHMEM cleanup. Looks like HIGHMEM usage doesn't worth the effort and 
30    performance hit, at least until FILEIO handler doesn't use the page
31    cache directly, so disable it for now, although the code looks ready.
32    To enable it, set SCST_HIGHMEM in 1 in scst_priv.h. HIGHMEM is not 
33    supported on 2.4 and is not going to be.
34
35  - Small ToDo's spread all over the code.
36
37  - Investigate possible missed emulated UA cases.
38
39  - More target drivers errors handling (timeouts for commands, sent
40    to target drivers, e.g. via xmit_response(), etc.) with some kind
41    of error recovery.
42
43  - Additional ability for target drivers to ask for command's retry also
44    after xmit_response() and rdy_to_xfer() returned (for example, if a
45    command was successfully sent to the target card, but later it was
46    returned by the card with BUSY completion status).
47  
48  - Asynchronous Event Notification support.
49  
50  - Support of SCSI 3 variable length CDBs, as well as OSD's extensions.
51  
52  - Advanced SCSI commands support: COPY, EXTENDED COPY, PERSISTENT
53    RESERVE IN/OUT, third party RESERVE, etc.