aboutsummaryrefslogtreecommitdiff
path: root/sys/dev
diff options
context:
space:
mode:
authorAlexander Motin <mav@FreeBSD.org>2021-01-21 02:33:14 +0000
committerAlexander Motin <mav@FreeBSD.org>2021-01-21 04:17:12 +0000
commitff751ee05c939eceab25c26ad60b1d56f989aec9 (patch)
tree8f2f2f802e9c509f43cca4130fe0ef7b46a08c8d /sys/dev
parent26490d9b74f0bdefbb9df74dcd285ecd08e0a961 (diff)
downloadsrc-ff751ee05c939eceab25c26ad60b1d56f989aec9.tar.gz
src-ff751ee05c939eceab25c26ad60b1d56f989aec9.zip
Remove FirstBurstLength limit for software iSCSI.
For hardware offload solicited data may potentially be handled more efficiently than unsolicited due to direct data placement. Or there can be some unsolicited write buffering limitations. It may create situations where FirstBurstLength limit is really useful. Software driver though has no those factors, having to do memcopy() any way and having no so hard limit on the temporary storage. Same time more active use of unsolicited transfers allows to avoid some of Ready To Transfer (R2T) PDU round-trip times and processing. This change effectively doubles from 64KB to 128KB the maximum size of write command that can be transferred within one link RTT. Tests of (64KB, 128KB] QD1 writes mixed with simultaneous QD8 reads over the same connection, increasing RTT, shows almost double write speed and half latency, while we should be able to afford few megabytes of RAM for additional buffering on a target these days. MFC after: 2 weeks Sponsored by: iXsystems, Inc.
Diffstat (limited to 'sys/dev')
-rw-r--r--sys/dev/iscsi/icl_soft.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/dev/iscsi/icl_soft.c b/sys/dev/iscsi/icl_soft.c
index bd4d9db81bb0..41d20b4abf69 100644
--- a/sys/dev/iscsi/icl_soft.c
+++ b/sys/dev/iscsi/icl_soft.c
@@ -1523,7 +1523,7 @@ icl_soft_limits(struct icl_drv_limits *idl)
idl->idl_max_recv_data_segment_length = 128 * 1024;
idl->idl_max_send_data_segment_length = 128 * 1024;
idl->idl_max_burst_length = 262144;
- idl->idl_first_burst_length = 65536;
+ idl->idl_first_burst_length = idl->idl_max_burst_length;
return (0);
}