Updated SRPT documentation.

git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@1024 d57e44dd-8a1f-0410-8b47-8ef2f437770f
This commit is contained in:
Bart Van Assche
2009-08-07 14:14:19 +00:00
parent 4588200994
commit c7572cd2cb
3 changed files with 67 additions and 23 deletions
+8 -23
View File
@@ -4,33 +4,18 @@
2. The SRPT driver directly uses the internal state of the SCST core target
state machine (scmnd->state), which is bad, bad, bad and generally not
acceptable. Only dev handler are allowed to use them. This should be fixed.
state machine (scmnd->state field / SCST_CMD_STATE_* values), which is bad,
bad, bad and generally not acceptable. Only dev handler are allowed to use
them. This should be fixed: the SRPT driver should keep its internal state
in an SRPT-specific variable. For an example, see also the "Q2T_STATE_"
constants in the qla2x00t driver, and especially the function
q2t_do_ctio_completion().
3. Fix the race condition between srpt_refresh_port_work() and
srpt_remove_one(). Although the probability that this happens is very low,
at least in theory it is possible that srpt_refresh_port_work() gets
called for a port after srpt_remove_one() called kfree() on the data
structure that contains the work_struct passed to srpt_refresh_port_work().
It's not clear to me whether or not letting srpt_remove_one() wait until
srpt_refresh_work() finished can result in a deadlock.
4. Find out from which threads the srpt_devices list can be accessed and
whether it has to be protected by a spinlock or mutex.
5. Fix the issue that 'rmmod ib_srpt' under load hangs.
6. The initiator names supplied to the SCST core contain the target port name,
3. The initiator names supplied to the SCST core contain the target port name,
which is wrong. Nobody identifies a man by the door through which he entered.
Instead, a man has a name by which he is identified through his whole life.
7. Analyze and document the implications of
4. Analyze and document the implications of
sdev->mr = ib_get_dma_mr(sdev->pd, IB_ACCESS_LOCAL_WRITE).
8. Enable and test the LUN_RESET task management function.