summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMike Christie <michaelc@cs.wisc.edu>2005-09-13 04:01:28 +0200
committerJames Bottomley <jejb@mulgrave.(none)>2005-09-20 19:30:39 +0200
commitb13941f635c3119eb02dc29b5248066f934f76be (patch)
tree8a7ecba66e92aceb8d91b16eda0cf0820420f1de
parent[SCSI] move iscsi to a better place in Kconfig (diff)
downloadlinux-b13941f635c3119eb02dc29b5248066f934f76be.tar.xz
linux-b13941f635c3119eb02dc29b5248066f934f76be.zip
[SCSI] iscsi: nodelay fix
From: tomof@acm.org I'm not sure about this. I don't think that NODELAY option hurts performance. However, open-iscsi does not use MSG_MORE properly with sendpage, so NODELAY option hurts the open-iscsi performance. I've attached a patch to fix NODELAY and MSG_MORE problems and the write performance results with disktest. I use Opteron boxes connected directly, Chelsio NICs, 1500-byte MTU, 64 KB I/O size, and the iSCSI parameters on open-iscsi web site. With only NODELAY fix, the performance drops, as you said. On the other hand, NODELAY and MSG_MORE fixes improve the performance overall. Signed-off-by: Alex Aizman <itn780@yahoo.com> Signed-off-by: Dmitry Yusupov <dmitry_yus@yahoo.com> Signed-off-by: Mike Christie <michaelc@cs.wisc.edu> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
-rw-r--r--drivers/scsi/iscsi_tcp.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/scsi/iscsi_tcp.c b/drivers/scsi/iscsi_tcp.c
index 810e5e59658f..584e51024fd6 100644
--- a/drivers/scsi/iscsi_tcp.c
+++ b/drivers/scsi/iscsi_tcp.c
@@ -1385,7 +1385,7 @@ iscsi_sendpage(struct iscsi_conn *conn, struct iscsi_buf *buf,
BUG_ON(buf->sent + size > buf->sg.length);
if (size > *count)
size = *count;
- if (buf->sent + size != buf->sg.length)
+ if (buf->sent + size != buf->sg.length || *count != size)
flags |= MSG_MORE;
res = iscsi_send(sk, buf, size, flags);