summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Brown2009-08-10 03:10:17 +0200
committerMichael Brown2009-08-10 23:22:42 +0200
commit1175f0cf29acbb8328e1ab054bb0f5d7077c3cc0 (patch)
tree5b50d8cb67f6bd16a2ab522d3cd6ce16a9c0a745
parent[hermon] Randomise the high-order bits of queue pair numbers (diff)
downloadipxe-1175f0cf29acbb8328e1ab054bb0f5d7077c3cc0.tar.gz
ipxe-1175f0cf29acbb8328e1ab054bb0f5d7077c3cc0.tar.xz
ipxe-1175f0cf29acbb8328e1ab054bb0f5d7077c3cc0.zip
[hermon] Reduce the RC ACK timeout
The ACK timeout determines how long we take to notice a failed Reliable Connection. Reducing it from the arbitrary value of 19 down to 14 reduces the individual ACK timeout from around 2.1s to 67ms; this in turn reduces the time to tear down and re-establish a broken SRP session from around 30s to around 1s.
-rw-r--r--src/drivers/infiniband/hermon.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/drivers/infiniband/hermon.c b/src/drivers/infiniband/hermon.c
index 0012904f..bff128fd 100644
--- a/src/drivers/infiniband/hermon.c
+++ b/src/drivers/infiniband/hermon.c
@@ -1108,7 +1108,7 @@ static int hermon_modify_qp ( struct ib_device *ibdev,
memset ( &qpctx, 0, sizeof ( qpctx ) );
MLX_FILL_1 ( &qpctx, 10,
qpc_eec_data.primary_address_path.ack_timeout,
- 0x13 );
+ 14 /* 4.096us * 2^(14) = 67ms */ );
MLX_FILL_2 ( &qpctx, 30,
qpc_eec_data.retry_count, HERMON_RETRY_MAX,
qpc_eec_data.rnr_retry, HERMON_RETRY_MAX );