FMR only applies to the SRP initiator, not to the SRP target.
[mirror/scst/.git] / srpt / ToDo
1 1. Update the OFED wiki entry about SRPT:
2    * https://wiki.openfabrics.org/tiki-index.php?page=SRPT+Installation
3
4
5 2. Analyze and document the implications of
6    sdev->mr = ib_get_dma_mr(sdev->pd, IB_ACCESS_LOCAL_WRITE).
7
8
9 3. Document the features added since 1.0.0 in the README file.
10
11
12 4. Implement support for bidirectionial SCSI commands. The SRP protocol
13    supports these, but the SRP target not yet.
14
15
16 5. Remove "struct sense_data" from ib_srpt.h and use the functions for
17    manipulating sense data from the SCST core instead.
18
19
20 6. Evaluate the possibility of removing the worker thread entirely and
21    instead to add a compile-time option called e.g. CONFIG_SRPT_WORK_IN_TREAD.
22    This compile-time option, if enabled, will process all commands in the SCST
23    context SCST_CONTEXT_THREAD, similar to CONFIG_QLA_TGT_DEBUG_WORK_IN_THREAD.
24
25
26 7. Allocate memory for task management data structures from a memory pool
27    instead of via kmalloc(..., GFP_ATOMIC). The last call has a high
28    probability of failing because the GFP_ATOMIC area is quite small and
29    heavily used when under load (e.g. network drivers allocate skb's from this
30    pool). Failure to allocate memory for even a single task management command
31    would lead to putting the whole device offline with possible corresponding
32    data loss.
33
34
35 8. Replace the calls to srpt_abort_if_disconnecting() by calls to
36    scst_cmd_aborted().
37
38
39 9. Start using the SGV clustering pool. More information can be found in the
40    documentation of struct scst_tgt_template in scst.h (use_clustering has to
41    be set to 1). A general description of the SGV cache can be found here:
42    http://scst.sourceforge.net/sgv_cache.txt.