mirror of
https://github.com/SCST-project/scst.git
synced 2026-05-19 19:51:27 +00:00
Merged revisions 5838, 5840, 5841 from iser branch
r5838 isert: Make sure we do dma_unmap on RDMA memory upon flushes r5840 isert: Raise the number of concurrent login requests we can handle to 127 Also update documentation to reflect current limitations r5841 isert: Fix small memory leak on module unload git-svn-id: http://svn.code.sf.net/p/scst/svn/branches/3.0.x-iser@5843 d57e44dd-8a1f-0410-8b47-8ef2f437770f
This commit is contained in:
@@ -15,6 +15,14 @@ In order to achieve better performance, it is recommended to specify
|
||||
"QueuedCommands 128" parameter per iSER target, since the transport
|
||||
is very fast and you usually want to connect it to fast backstorage.
|
||||
|
||||
Limitations:
|
||||
-------------
|
||||
* Bidirectional commands are not supported
|
||||
* Block size over 512KB is not supported
|
||||
* Maximum number of concurent login requests that can be handled is 127.
|
||||
Note that there may be more connections, but only up to 127 login requests
|
||||
can be handled at the same time.
|
||||
|
||||
|
||||
Troubleshooting:
|
||||
-----------------
|
||||
|
||||
@@ -521,6 +521,9 @@ static void isert_handle_wc_error(struct ib_wc *wc)
|
||||
struct isert_wr *wr = _u64_to_ptr(wc->wr_id);
|
||||
struct isert_cmnd *isert_pdu = wr->pdu;
|
||||
struct isert_connection *isert_conn = wr->conn;
|
||||
struct isert_buf *isert_buf = wr->buf;
|
||||
struct isert_device *isert_dev = wr->isert_dev;
|
||||
struct ib_device *ib_dev = isert_dev->ib_dev;
|
||||
|
||||
TRACE_ENTRY();
|
||||
|
||||
@@ -538,11 +541,22 @@ static void isert_handle_wc_error(struct ib_wc *wc)
|
||||
}
|
||||
break;
|
||||
case ISER_WR_RDMA_READ:
|
||||
if (isert_buf->sg_cnt != 0) {
|
||||
isert_buf->sg_cnt = 0;
|
||||
ib_dma_unmap_sg(ib_dev, isert_buf->sg, isert_buf->sg_cnt,
|
||||
isert_buf->dma_dir);
|
||||
}
|
||||
isert_pdu_err(&isert_pdu->iscsi);
|
||||
break;
|
||||
case ISER_WR_RECV:
|
||||
/* this should be the Flush, no task has been created yet */
|
||||
break;
|
||||
case ISER_WR_RDMA_WRITE:
|
||||
if (isert_buf->sg_cnt != 0) {
|
||||
isert_buf->sg_cnt = 0;
|
||||
ib_dma_unmap_sg(ib_dev, isert_buf->sg, isert_buf->sg_cnt,
|
||||
isert_buf->dma_dir);
|
||||
}
|
||||
/* RDMA-WR and SEND response of a READ task
|
||||
are sent together, so when receiving RDMA-WR error,
|
||||
wait until SEND error arrives to complete the task */
|
||||
@@ -1592,6 +1606,7 @@ void isert_portal_release(struct isert_portal *portal)
|
||||
|
||||
isert_portal_list_remove(portal);
|
||||
|
||||
kfree(portal);
|
||||
module_put(THIS_MODULE);
|
||||
}
|
||||
|
||||
|
||||
@@ -65,7 +65,7 @@
|
||||
|
||||
struct iscsi_conn;
|
||||
|
||||
#define ISERT_NR_DEVS 64
|
||||
#define ISERT_NR_DEVS 128
|
||||
|
||||
struct isert_listener_dev {
|
||||
struct device *dev;
|
||||
|
||||
Reference in New Issue
Block a user