diff options
author | Mike Christie <michaelc@cs.wisc.edu> | 2005-09-12 21:01:28 -0500 |
---|---|---|
committer | James Bottomley <jejb@mulgrave.(none)> | 2005-09-20 12:30:39 -0500 |
commit | b13941f635c3119eb02dc29b5248066f934f76be (patch) | |
tree | 8a7ecba66e92aceb8d91b16eda0cf0820420f1de /drivers/scsi/iscsi_tcp.c | |
parent | 96bad874e7b047ec1e6fade09acba47fd19211c5 (diff) | |
download | kernel_samsung_smdk4412-b13941f635c3119eb02dc29b5248066f934f76be.zip kernel_samsung_smdk4412-b13941f635c3119eb02dc29b5248066f934f76be.tar.gz kernel_samsung_smdk4412-b13941f635c3119eb02dc29b5248066f934f76be.tar.bz2 |
[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>
Diffstat (limited to 'drivers/scsi/iscsi_tcp.c')
-rw-r--r-- | drivers/scsi/iscsi_tcp.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/scsi/iscsi_tcp.c b/drivers/scsi/iscsi_tcp.c index 810e5e5..584e510 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); |